diff --git a/icu4c/source/test/intltest/testidn.cpp b/icu4c/source/test/intltest/testidn.cpp index 96e4b7c06fa..844bef69cbb 100644 --- a/icu4c/source/test/intltest/testidn.cpp +++ b/icu4c/source/test/intltest/testidn.cpp @@ -104,7 +104,7 @@ static UOption options[]={ extern int testData(TestIDNA& test) { - char filename[300]; + char* filename = (char*) malloc(strlen(IntlTest::pathToDataDirectory())*3); //TODO get the srcDir dynamically const char *srcDir=IntlTest::pathToDataDirectory(), *destDir=NULL, *suffix=NULL; char *basename=NULL; @@ -178,6 +178,7 @@ testData(TestIDNA& test) { cleanup(); pTestIDNA = NULL; + free(filename); return errorCode; } U_CDECL_BEGIN diff --git a/icu4c/source/tools/genidna/genidna.c b/icu4c/source/tools/genidna/genidna.c index 682f37870a9..855848df80a 100644 --- a/icu4c/source/tools/genidna/genidna.c +++ b/icu4c/source/tools/genidna/genidna.c @@ -88,7 +88,7 @@ static UOption options[]={ extern int main(int argc, char* argv[]) { - char filename[300]; + char* filename = NULL; const char *srcDir=NULL, *destDir=NULL, *suffix=NULL; char *basename=NULL; char *saveBasename = NULL; @@ -147,7 +147,7 @@ main(int argc, char* argv[]) { } setUnicodeVersion(options[6].value); - + filename = (char* ) uprv_malloc(uprv_strlen(srcDir) + 300); /* hopefully this should be enough */ /* prepare the filename beginning with the source dir */ if(uprv_strchr(srcDir,U_FILE_SEP_CHAR) == NULL){ filename[0] = 0x2E; @@ -240,6 +240,8 @@ main(int argc, char* argv[]) { if(printRules){ printf("\t\t\"::[:AGE=3.2:]NFKC;\"\n\t}\n}"); } + + uprv_free(filename); return errorCode; }