summaryrefslogtreecommitdiff
path: root/pngset.c
diff options
context:
space:
mode:
authorGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2017-08-01 21:42:16 -0500
committerGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2017-08-01 21:42:16 -0500
commit71a56180e54de5ffa42b7e85835c272771393add (patch)
treeedb8cf7b2b56dab3295bbc3ed9b36cb4fe785fa5 /pngset.c
parentcb628b2e4ea33ab3041076f7e03e68678f02f12b (diff)
[libpng16] Stop memory leak when returning from png_handle_eXIf() with an error
(Bug report from the OSS-fuzz project).
Diffstat (limited to 'pngset.c')
-rw-r--r--pngset.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/pngset.c b/pngset.c
index d62ac43b7..55a0e5c91 100644
--- a/pngset.c
+++ b/pngset.c
@@ -146,7 +146,11 @@ png_set_eXIf_1(png_const_structrp png_ptr, png_inforp info_ptr,
if (png_ptr == NULL || info_ptr == NULL)
return;
- png_free_data(png_ptr, info_ptr, PNG_FREE_EXIF, 0);
+ if (info_ptr->exif)
+ {
+ png_free(png_ptr, info_ptr->exif);
+ info_ptr->exif = NULL;
+ }
info_ptr->num_exif = num_exif;