Upstream-Status is missing, and this looks like something that should be
sent upstream first for review.

Alex

On Thu, 5 Aug 2021 at 22:22, Joe Slater <joe.sla...@windriver.com> wrote:

> 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.
>
> Signed-off-by: Joe Slater <joe.sla...@windriver.com>
> ---
>  ...pkgdata-increase-command-buffer-size.patch | 41 +++++++++++++++++++
>  meta/recipes-support/icu/icu_69.1.bb          |  1 +
>  2 files changed, 42 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..14d17f9742
> --- /dev/null
> +++
> b/meta/recipes-support/icu/icu/0001-pkgdata-increase-command-buffer-size.patch
> @@ -0,0 +1,41 @@
> +From ab6b1acdeed76899f8227c38ab7e7675c7673ff1 Mon Sep 17 00:00:00 2001
> +From: Joe Slater <joe.sla...@windriver.com>
> +Date: Thu, 5 Aug 2021 09:23:48 -0700
> +Subject: [oe-core][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.
> +
> +Signed-off-by: Joe Slater <joe.sla...@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
>
>
> 
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#154533): 
https://lists.openembedded.org/g/openembedded-core/message/154533
Mute This Topic: https://lists.openembedded.org/mt/84693849/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to