From afcaf53b99f263fb66afe1ba203f53e9545c0afc Mon Sep 17 00:00:00 2001 From: Timo Kokkonen Date: Sat, 7 Jan 2023 22:28:45 -0800 Subject: [PATCH] Fix memory leak when checking integrity of certain corrupt JPEG images. --- jpeginfo.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/jpeginfo.c b/jpeginfo.c index 497a6a7..4473ec6 100644 --- a/jpeginfo.c +++ b/jpeginfo.c @@ -288,6 +288,10 @@ int main(int argc, char **argv) if (!buf || !MD5) no_memory(); + for(i = 0; i < BUF_LINES; i++) { + buf[i] = NULL; + } + cinfo.err = jpeg_std_error(&jerr.pub); jpeg_create_decompress(&cinfo); jerr.pub.error_exit=my_error_exit; @@ -312,6 +316,12 @@ int main(int argc, char **argv) if (setjmp(jerr.setjmp_buffer)) { jpeg_abort_decompress(&cinfo); + for(j = 0; j < BUF_LINES; j++) { + if (buf[j]) { + free(buf[j]); + buf[j] = NULL; + } + } fclose(infile); if (list_mode && quiet_mode < 2) printf(" %s", current); if (quiet_mode < 2) printf(" [ERROR]\n"); @@ -423,7 +433,7 @@ int main(int argc, char **argv) cinfo.scale_denom = 8; cinfo.scale_num = 1; jpeg_start_decompress(&cinfo); - + for (j=0;j