Merge remote-tracking branch 'goog/ics-aah'
diff --git a/pngrutil.c b/pngrutil.c
index dfa2c03..d67af58 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -380,8 +380,14 @@
       {
          /* Success (maybe) - really uncompress the chunk. */
          png_size_t new_size = 0;
-         png_charp text = png_malloc_warn(png_ptr,
-                        prefix_size + expanded_size + 1);
+         png_charp text = NULL;
+
+         /* Need to check for both truncation (64-bit) and integer overflow. */
+         if (prefix_size + expanded_size > prefix_size &&
+             prefix_size + expanded_size < 0xffffffffU)
+         {
+             text = png_malloc_warn(png_ptr, prefix_size + expanded_size + 1);
+         }
 
          if (text != NULL)
          {