[v2][oe-core][PATCH 1/1] icu: increase command buffer size
From: Joe Slater <hidden>
Date: 2021-08-06 15:40:49
Subsystem:
the rest · Maintainer:
Linus Torvalds
Make cmd in pkg_installLibrary() LARGE_BUFFER_SIZE to avoid pathname truncation if the install path is longer than about 150 characters. For default compilation, the U_ASSERT does not detect buffer overflow, but that issue is not addressed. Signed-off-by: Joe Slater <redacted> --- ...pkgdata-increase-command-buffer-size.patch | 43 +++++++++++++++++++ meta/recipes-support/icu/icu_69.1.bb | 1 + 2 files changed, 44 insertions(+) create mode 100644 meta/recipes-support/icu/icu/0001-pkgdata-increase-command-buffer-size.patch
diff --git a/meta/recipes-support/icu/icu/0001-pkgdata-increase-command-buffer-size.patch b/meta/recipes-support/icu/icu/0001-pkgdata-increase-command-buffer-size.patch
new file mode 100644
index 0000000000..ea68e4be9f
--- /dev/null
+++ b/meta/recipes-support/icu/icu/0001-pkgdata-increase-command-buffer-size.patch@@ -0,0 +1,43 @@ +From ab6b1acdeed76899f8227c38ab7e7675c7673ff1 Mon Sep 17 00:00:00 2001 +From: Joe Slater <joe.slater@windriver.com> +Date: Thu, 5 Aug 2021 09:23:48 -0700 +Subject: [PATCH 1/1] pkgdata: increase command buffer size + +Make cmd LARGE_BUFFER_SIZE to avoid pathname truncation +when install paths are longer than about 150 characters. + +Upstream-Status: Pending + +Signed-off-by: Joe Slater <joe.slater@windriver.com> +--- + source/tools/pkgdata/pkgdata.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/source/tools/pkgdata/pkgdata.cpp b/source/tools/pkgdata/pkgdata.cpp +index 5ab682e..d4b70ef 100644 +--- a/tools/pkgdata/pkgdata.cpp ++++ b/tools/pkgdata/pkgdata.cpp +@@ -1131,17 +1131,17 @@ normal_symlink_mode: + + static int32_t pkg_installLibrary(const char *installDir, const char *targetDir, UBool noVersion) { + int32_t result = 0; +- char cmd[SMALL_BUFFER_MAX_SIZE]; ++ char cmd[LARGE_BUFFER_MAX_SIZE]; + + auto ret = snprintf(cmd, +- SMALL_BUFFER_MAX_SIZE, ++ LARGE_BUFFER_MAX_SIZE, + "cd %s && %s %s %s%s%s", + targetDir, + pkgDataFlags[INSTALL_CMD], + libFileNames[LIB_FILE_VERSION], + installDir, PKGDATA_FILE_SEP_STRING, libFileNames[LIB_FILE_VERSION]); + (void)ret; +- U_ASSERT(0 <= ret && ret < SMALL_BUFFER_MAX_SIZE); ++ U_ASSERT(0 <= ret && ret < LARGE_BUFFER_MAX_SIZE); + + result = runCommand(cmd); + +-- +2.29.2 +
diff --git a/meta/recipes-support/icu/icu_69.1.bb b/meta/recipes-support/icu/icu_69.1.bb
index bfeea8d2f0..00c22372b5 100644
--- a/meta/recipes-support/icu/icu_69.1.bb
+++ b/meta/recipes-support/icu/icu_69.1.bb@@ -107,6 +107,7 @@ SRC_URI = "${BASE_SRC_URI};name=code \ file://filter.json \ file://fix-install-manx.patch \ file://0001-icu-Added-armeb-support.patch \ + file://0001-pkgdata-increase-command-buffer-size.patch \ " SRC_URI_append_class-target = "\
--
2.29.2