diff options
Diffstat (limited to 'package/icu/icu-overflow.patch')
-rw-r--r-- | package/icu/icu-overflow.patch | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/package/icu/icu-overflow.patch b/package/icu/icu-overflow.patch deleted file mode 100644 index 45beaa7ea..000000000 --- a/package/icu/icu-overflow.patch +++ /dev/null @@ -1,93 +0,0 @@ - -A combination of issue & patches from... - -https://bugs.icu-project.org/trac/ticket/7680 -https://bugs.icu-project.org/trac/changeset/28002 -https://bugs.icu-project.org/trac/changeset/28124 - -Enlarged buffers more since include files for pkgdata can grow -significantly when cross-compiling. -This ONLY affects building. - -Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> - -diff -Nura icu.orig/source/tools/pkgdata/pkgdata.cpp icu/source/tools/pkgdata/pkgdata.cpp ---- icu.orig/source/tools/pkgdata/pkgdata.cpp 2010-09-29 15:37:28.000000000 -0300 -+++ icu/source/tools/pkgdata/pkgdata.cpp 2010-12-21 15:53:30.252554924 -0300 -@@ -97,8 +97,9 @@ - #define PKGDATA_FILE_SEP_STRING U_FILE_SEP_STRING - #endif - --#define LARGE_BUFFER_MAX_SIZE 2048 --#define SMALL_BUFFER_MAX_SIZE 512 -+#define LARGE_BUFFER_MAX_SIZE 8192 -+#define MEDIUM_BUFFER_MAX_SIZE 4096 -+#define SMALL_BUFFER_MAX_SIZE 2048 - - static void loadLists(UPKGOptions *o, UErrorCode *status); - -@@ -472,29 +473,48 @@ - } - - static int runCommand(const char* command, UBool specialHandling) { -- char cmd[SMALL_BUFFER_MAX_SIZE]; -+ char *cmd = NULL; -+ char cmdBuffer[SMALL_BUFFER_MAX_SIZE]; -+ int32_t len = strlen(command); -+ -+ if (len == 0) { -+ return 0; -+ } - - if (!specialHandling) { -+#if defined(USING_CYGWIN) || defined(OS400) -+#define CMD_PADDING_SIZE 20 -+ if ((len + CMD_PADDING_SIZE) >= SMALL_BUFFER_MAX_SIZE) { -+ cmd = (char *)uprv_malloc(len + CMD_PADDING_SIZE); -+ } else { -+ cmd = cmdBuffer; -+ } - #ifdef USING_CYGWIN - sprintf(cmd, "bash -c \"%s\"", command); - - #elif defined(OS400) - sprintf(cmd, "QSH CMD('%s')", command); -+#endif - #else - goto normal_command_mode; - #endif - } else { - normal_command_mode: -- sprintf(cmd, "%s", command); -+ cmd = (char *)command; - } -- -+ - printf("pkgdata: %s\n", cmd); - int result = system(cmd); -- if (result != 0) { -- printf("-- return status = %d\n", result); -+ if (result != 0) { -+ printf("-- return status = %d\n", result); -+ } -+ -+ if (cmd != cmdBuffer && cmd != command) { -+ uprv_free(cmd); - } -- return result; --} -+ -+ return result; -+} - - #define LN_CMD "ln -s" - #define RM_CMD "rm -f" -@@ -586,7 +606,7 @@ - pkgDataFlags = (char**)uprv_malloc(sizeof(char*) * PKGDATA_FLAGS_SIZE); - if (pkgDataFlags != NULL) { - for (int32_t i = 0; i < PKGDATA_FLAGS_SIZE; i++) { -- pkgDataFlags[i] = (char*)uprv_malloc(sizeof(char) * SMALL_BUFFER_MAX_SIZE); -+ pkgDataFlags[i] = (char*)uprv_malloc(sizeof(char) * MEDIUM_BUFFER_MAX_SIZE); - if (pkgDataFlags[i] != NULL) { - pkgDataFlags[i][0] = 0; - } else { |