[libpng15] Reject invalid compression flag when reading the iTXt chunk.
diff --git a/ANNOUNCE b/ANNOUNCE
index 873397e..6c2660b 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.5.7beta05 - November 21, 2011
+Libpng 1.5.7beta05 - November 22, 2011
 
 This is not intended to be a public release.  It will be replaced
 within a few weeks by a public version or by another test version.
@@ -99,12 +99,13 @@
     Also removed a duplicate setting of this flag.
   Added files that were omitted from the libpng-1.5.7beta03 zip distribution.
 
-Version 1.5.7beta05 [November 21, 2011]
+Version 1.5.7beta05 [November 22, 2011]
   Removed "zTXt" from warning in generic chunk decompression function.
   Validate time settings passed to pngset() and png_convert_to_rfc1123()
     (Frank Busse).
-  Allow row_stride==0 to indicate default stride in simplified API
+  Allow row_stride==0 to indicate default stride in simplified API.
   Added MINGW support to CMakeLists.txt
+  Reject invalid compression flag when reading the iTXt chunk.
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net:
 (subscription required; visit
diff --git a/CHANGES b/CHANGES
index f44c0f6..752961c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -3744,12 +3744,13 @@
     Also removed a duplicate setting of this flag.
   Added files that were omitted from the libpng-1.5.7beta03 zip distribution.
 
-Version 1.5.7beta05 [November 21, 2011]
+Version 1.5.7beta05 [November 22, 2011]
   Removed "zTXt" from warning in generic chunk decompression function.
   Validate time settings passed to pngset() and png_convert_to_rfc1123()
     (Frank Busse).
-  Allow row_stride==0 to indicate default stride in simplified API
+  Allow row_stride==0 to indicate default stride in simplified API.
   Added MINGW support to CMakeLists.txt
+  Reject invalid compression flag when reading the iTXt chunk.
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
diff --git a/pngrutil.c b/pngrutil.c
index 7166000..54b3771 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -2540,6 +2540,14 @@
       comp_type = *lang++;
    }
 
+   if (comp_flag != PNG_TEXT_COMPRESSION_zTXt)
+   {
+      png_warning(png_ptr, "Unknown iTXt compression type");
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
+      return;
+   }
+
    for (lang_key = lang; *lang_key; lang_key++)
       /* Empty loop */ ;