From 61d29bfc805e95b8f62cc96b4965092cf4396371 Mon Sep 17 00:00:00 2001 From: Glenn Randers-Pehrson Date: Tue, 12 Sep 2017 08:22:09 -0500 Subject: [libpng16] Guard against Uninitialized Memory Read in png_check_icc_table(), detected by the oss-fuzz project. --- png.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'png.c') diff --git a/png.c b/png.c index cc71ca491..7dc5a8768 100644 --- a/png.c +++ b/png.c @@ -816,14 +816,14 @@ png_get_copyright(png_const_structrp png_ptr) #else # ifdef __STDC__ return PNG_STRING_NEWLINE \ - "libpng version 1.6.33beta03 - September 10, 2017" PNG_STRING_NEWLINE \ + "libpng version 1.6.33beta03 - September 12, 2017" PNG_STRING_NEWLINE \ "Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson" \ PNG_STRING_NEWLINE \ "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \ "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \ PNG_STRING_NEWLINE; # else - return "libpng version 1.6.33beta03 - September 10, 2017\ + return "libpng version 1.6.33beta03 - September 12, 2017\ Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson\ Copyright (c) 1996-1997 Andreas Dilger\ Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc."; @@ -2228,6 +2228,9 @@ png_icc_check_tag_table(png_const_structrp png_ptr, png_colorspacerp colorspace, /* This is a hard error; potentially it can cause read outside the * profile. */ + if (tag > profile + 11) + return png_icc_profile_error(png_ptr, colorspace, name, tag_id, + "ICC profile tag table truncated"); if (tag_start > profile_length || tag_length > profile_length - tag_start) return png_icc_profile_error(png_ptr, colorspace, name, tag_id, "ICC profile tag outside profile"); -- cgit v1.2.1