[libpng16] Initialized btoa[] in pngstest.c; stop memory leak in png_handle_eXIf()
when returning with an error.
diff --git a/ANNOUNCE b/ANNOUNCE
index fb2cc72..8168de3 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -39,6 +39,10 @@
Version 1.6.32beta02 [August 1, 2017]
Updated contrib/libtests/pngunknown.c with eXIf chunk.
+Version 1.6.32beta03 [August 1, 2017]
+ Initialized btoa[] in pngstest.c
+ Stop memory leak when returning from png_handle_eXIf() with an error.
+
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
diff --git a/CHANGES b/CHANGES
index 8935d26..174db2c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -5922,6 +5922,10 @@
Version 1.6.32beta02 [August 1, 2017]
Updated contrib/libtests/pngunknown.c with eXIf chunk.
+Version 1.6.32beta03 [August 1, 2017]
+ Initialized btoa[] in pngstest.c
+ Stop memory leak when returning from png_handle_eXIf() with an error.
+
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
diff --git a/contrib/libtests/pngstest.c b/contrib/libtests/pngstest.c
index 0617dbb..ab45089 100644
--- a/contrib/libtests/pngstest.c
+++ b/contrib/libtests/pngstest.c
@@ -2610,9 +2610,9 @@
const unsigned int b_sample = PNG_IMAGE_SAMPLE_SIZE(formatb);
int alpha_added, alpha_removed;
int bchannels;
- int btoa[4];
png_uint_32 y;
Transform tr;
+ int btoa[4]={0,0,0,0};
/* This should never happen: */
if (width != b->image.width || height != b->image.height)
diff --git a/pngrutil.c b/pngrutil.c
index f0e1728..3be7c17 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -2039,7 +2039,10 @@
}
if (png_crc_finish(png_ptr, 0) != 0)
+ {
+ png_free(png_ptr, eXIf_buf);
return;
+ }
png_set_eXIf_1(png_ptr, info_ptr, length, eXIf_buf);