summaryrefslogtreecommitdiff
path: root/pngpread.c
diff options
context:
space:
mode:
Diffstat (limited to 'pngpread.c')
-rw-r--r--pngpread.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/pngpread.c b/pngpread.c
index 4c9ae765c..e66eb768c 100644
--- a/pngpread.c
+++ b/pngpread.c
@@ -1,8 +1,8 @@
/* pngpread.c - read a png file in push mode
*
- * Last changed in libpng 1.2.44 [June 26, 2010]
- * Copyright (c) 1998-2002,2004,2006-2010 Glenn Randers-Pehrson
+ * Last changed in libpng 1.2.57 [(TO BE RELEASED)]
+ * Copyright (c) 1998-2002,2004,2006-2010,2016 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
*
@@ -687,7 +687,12 @@ png_push_save_buffer(png_structp png_ptr)
}
else
{
- png_memcpy(png_ptr->save_buffer, old_buffer, png_ptr->save_buffer_size);
+ if (old_buffer)
+ png_memcpy(png_ptr->save_buffer, old_buffer,
+ png_ptr->save_buffer_size);
+ else if (png_ptr->save_buffer_size)
+ png_error(png_ptr, "save_buffer error");
+ png_memcpy(png_ptr->save_buffer, old_buffer,png_ptr->save_buffer_size);
png_free(png_ptr, old_buffer);
png_ptr->save_buffer_max = new_max;
}