From 52e42547240173168aed226025fec3bf758634e1 Mon Sep 17 00:00:00 2001 From: Alden Markowski Date: Tue, 4 Aug 2026 02:23:32 -0400 Subject: [PATCH] Fix memory leak in minizip's zipOpen3. --- contrib/minizip/zip.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/contrib/minizip/zip.c b/contrib/minizip/zip.c index 0bbdf77e5f..7fd4d425b6 100644 --- a/contrib/minizip/zip.c +++ b/contrib/minizip/zip.c @@ -1055,6 +1055,11 @@ local int LoadCentralDirectoryRecord(zip64_internal* pziinit) { if (ZSEEK64(pziinit->z_filefunc, pziinit->filestream, offset_central_dir+byte_before_the_zipfile,ZLIB_FILEFUNC_SEEK_SET) != 0) err=ZIP_ERRNO; + if (err != ZIP_OK) + { + ZCLOSE64(pziinit->z_filefunc, pziinit->filestream); + } + return err; } @@ -1123,6 +1128,7 @@ extern zipFile ZEXPORT zipOpen3(const void *pathname, int append, zipcharpc* glo { # ifndef NO_ADDFILEINEXISTINGZIP free(ziinit.globalcomment); + free_linkedlist(&(ziinit.central_dir)); # endif /* !NO_ADDFILEINEXISTINGZIP*/ free(zi); return NULL;