summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorJackie Huang <jackie.huang@windriver.com>2017-05-10 14:29:11 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-05-23 17:45:36 +0100
commitc6e8ce853013c3e51b47f75d073fd148e60bf03b (patch)
treee4d83e8540b56a898b1c78704875b341bb4d5b1c /meta
parent29c426b8860b3a8eaf0e7862875a756ec7cc25bf (diff)
downloadpoky-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.patch28
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.
8Upstream-Status: Pending 8Upstream-Status: Pending
9 9
10Signed-off-by: Robert Yang <liezhi.yang@windriver.com> 10Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
11Signed-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
15diff --git a/tools/pkgdata/pkgdata.cpp b/tools/pkgdata/pkgdata.cpp 16diff --git a/tools/pkgdata/pkgdata.cpp b/tools/pkgdata/pkgdata.cpp
17index 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--
281.7.10.4 481.9.1
29 49