From: Michael Ow Date: Thu, 17 May 2012 20:09:47 +0000 (+0000) Subject: ICU-9326 Fix potential icupkg tool trap in Windows static build X-Git-Tag: milestone-59-0-1~3817 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e1ba49ca9fb4497771da860a49c33aca931274b4;p=icu ICU-9326 Fix potential icupkg tool trap in Windows static build X-SVN-Rev: 31830 --- diff --git a/icu4c/source/tools/icupkg/icupkg.cpp b/icu4c/source/tools/icupkg/icupkg.cpp index 8001ec2ae93..2004885cd5e 100644 --- a/icu4c/source/tools/icupkg/icupkg.cpp +++ b/icu4c/source/tools/icupkg/icupkg.cpp @@ -371,8 +371,12 @@ main(int argc, char *argv[]) { /* remove items */ if(options[OPT_REMOVE_LIST].doesOccur) { - listPkg=readList(NULL, options[OPT_REMOVE_LIST].value, FALSE); - if(listPkg!=NULL) { + listPkg=new Package(); + if(listPkg==NULL) { + fprintf(stderr, "icupkg: not enough memory\n"); + exit(U_MEMORY_ALLOCATION_ERROR); + } + if(!readList(NULL, options[OPT_REMOVE_LIST].value, FALSE, listPkg)) { pkg->removeItems(*listPkg); delete listPkg; isModified=TRUE; @@ -389,8 +393,12 @@ main(int argc, char *argv[]) { */ addListPkg=NULL; if(options[OPT_ADD_LIST].doesOccur) { - addListPkg=readList(sourcePath, options[OPT_ADD_LIST].value, TRUE); - if(addListPkg!=NULL) { + addListPkg=new Package(); + if(addListPkg==NULL) { + fprintf(stderr, "icupkg: not enough memory\n"); + exit(U_MEMORY_ALLOCATION_ERROR); + } + if(!readList(sourcePath, options[OPT_ADD_LIST].value, TRUE, addListPkg)) { pkg->addItems(*addListPkg); // delete addListPkg; deferred until after writePackage() isModified=TRUE;