File tree Expand file tree Collapse file tree 1 file changed +10
-4
lines changed
Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Original file line number Diff line number Diff line change 11/* ********** File AM Zip C++ Program Source Code File (.CPP) ***********/
22/* PROGRAM NAME: FILAMZIP */
33/* ------------- */
4- /* Version 1.1 */
4+ /* Version 1.2 */
55/* */
66/* COPYRIGHT: */
77/* ---------- */
@@ -652,12 +652,18 @@ bool UNZIPUTL::openEntry(PGLOBAL g)
652652}// endif rc
653653
654654size = finfo.uncompressed_size ;
655- memory = new char [size + 1 ];
655+
656+ try {
657+ memory = new char [size + 1 ];
658+ } catch (...) {
659+ strcpy (g->Message , " Out of memory" );
660+ return true ;
661+ } // end try/catch
656662
657663if ((rc = unzReadCurrentFile (zipfile, memory, size)) < 0 ) {
658664sprintf (g->Message , " unzReadCurrentFile rc = %d" , rc);
659665unzCloseCurrentFile (zipfile);
660- free ( memory) ;
666+ delete[] memory;
661667memory = NULL ;
662668entryopen = false ;
663669} else {
@@ -682,7 +688,7 @@ void UNZIPUTL::closeEntry()
682688}// endif entryopen
683689
684690if (memory) {
685- free ( memory) ;
691+ delete[] memory;
686692memory = NULL ;
687693}// endif memory
688694
You can’t perform that action at this time.
0 commit comments