diff options
author | Jackie Huang <jackie.huang@windriver.com> | 2017-05-10 14:29:11 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-05-23 17:45:36 +0100 |
commit | c6e8ce853013c3e51b47f75d073fd148e60bf03b (patch) | |
tree | e4d83e8540b56a898b1c78704875b341bb4d5b1c /meta | |
parent | 29c426b8860b3a8eaf0e7862875a756ec7cc25bf (diff) | |
download | poky-c6e8ce853013c3e51b47f75d073fd148e60bf03b.tar.gz |
icu: Use LARGE_BUFFER_MAX_SIZE for cmd
The previous patch used LARGE_BUFFER_MAX_SIZE instead
of SMALL_BUFFER_MAX_SIZE for cmd in function pkg_installLibrary,
which only fixed some of the cases when the command line
is too long, some other cases indicate that the
LARGE_BUFFER_MAX_SIZE is also needed in pkg_installCommonMode
and pkg_installFileMode to avoid overflow:
| *** buffer overflow detected ***: ../bin/pkgdata terminated
(From OE-Core rev: 2c3ec6b3c4e8faf9cf88ae33727b4fecef83d0f8)
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/recipes-support/icu/icu/icu-pkgdata-large-cmd.patch | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/meta/recipes-support/icu/icu/icu-pkgdata-large-cmd.patch b/meta/recipes-support/icu/icu/icu-pkgdata-large-cmd.patch index 6e40659227..e758a623ef 100644 --- a/meta/recipes-support/icu/icu/icu-pkgdata-large-cmd.patch +++ b/meta/recipes-support/icu/icu/icu-pkgdata-large-cmd.patch | |||
@@ -8,14 +8,16 @@ LARGE_BUFFER_MAX_SIZE. | |||
8 | Upstream-Status: Pending | 8 | Upstream-Status: Pending |
9 | 9 | ||
10 | Signed-off-by: Robert Yang <liezhi.yang@windriver.com> | 10 | Signed-off-by: Robert Yang <liezhi.yang@windriver.com> |
11 | Signed-off-by: Jackie Huang <jackie.huang@windriver.com> | ||
11 | --- | 12 | --- |
12 | tools/pkgdata/pkgdata.cpp | 2 +- | 13 | tools/pkgdata/pkgdata.cpp | 6 +++--- |
13 | 1 file changed, 1 insertion(+), 1 deletion(-) | 14 | 1 file changed, 3 insertions(+), 3 deletions(-) |
14 | 15 | ||
15 | diff --git a/tools/pkgdata/pkgdata.cpp b/tools/pkgdata/pkgdata.cpp | 16 | diff --git a/tools/pkgdata/pkgdata.cpp b/tools/pkgdata/pkgdata.cpp |
17 | index 60167dd..506dd32 100644 | ||
16 | --- a/tools/pkgdata/pkgdata.cpp | 18 | --- a/tools/pkgdata/pkgdata.cpp |
17 | +++ b/tools/pkgdata/pkgdata.cpp | 19 | +++ b/tools/pkgdata/pkgdata.cpp |
18 | @@ -1019,7 +1019,7 @@ normal_symlink_mode: | 20 | @@ -1084,7 +1084,7 @@ normal_symlink_mode: |
19 | 21 | ||
20 | static int32_t pkg_installLibrary(const char *installDir, const char *targetDir, UBool noVersion) { | 22 | static int32_t pkg_installLibrary(const char *installDir, const char *targetDir, UBool noVersion) { |
21 | int32_t result = 0; | 23 | int32_t result = 0; |
@@ -24,6 +26,24 @@ diff --git a/tools/pkgdata/pkgdata.cpp b/tools/pkgdata/pkgdata.cpp | |||
24 | 26 | ||
25 | sprintf(cmd, "cd %s && %s %s %s%s%s", | 27 | sprintf(cmd, "cd %s && %s %s %s%s%s", |
26 | targetDir, | 28 | targetDir, |
29 | @@ -1152,7 +1152,7 @@ static int32_t pkg_installLibrary(const char *installDir, const char *targetDir, | ||
30 | |||
31 | static int32_t pkg_installCommonMode(const char *installDir, const char *fileName) { | ||
32 | int32_t result = 0; | ||
33 | - char cmd[SMALL_BUFFER_MAX_SIZE] = ""; | ||
34 | + char cmd[LARGE_BUFFER_MAX_SIZE] = ""; | ||
35 | |||
36 | if (!T_FileStream_file_exists(installDir)) { | ||
37 | UErrorCode status = U_ZERO_ERROR; | ||
38 | @@ -1184,7 +1184,7 @@ static int32_t pkg_installCommonMode(const char *installDir, const char *fileNam | ||
39 | #endif | ||
40 | static int32_t pkg_installFileMode(const char *installDir, const char *srcDir, const char *fileListName) { | ||
41 | int32_t result = 0; | ||
42 | - char cmd[SMALL_BUFFER_MAX_SIZE] = ""; | ||
43 | + char cmd[LARGE_BUFFER_MAX_SIZE] = ""; | ||
44 | |||
45 | if (!T_FileStream_file_exists(installDir)) { | ||
46 | UErrorCode status = U_ZERO_ERROR; | ||
27 | -- | 47 | -- |
28 | 1.7.10.4 | 48 | 1.9.1 |
29 | 49 | ||