File djvulibre-CVE-2021-32491.patch of Package djvulibre.30379

Index: djvulibre-3.5.25/tools/ddjvu.cpp
===================================================================
--- djvulibre-3.5.25.orig/tools/ddjvu.cpp	2021-05-11 15:14:07.954166235 +0200
+++ djvulibre-3.5.25/tools/ddjvu.cpp	2021-05-11 15:14:07.962166279 +0200
@@ -70,6 +70,7 @@
 #include <locale.h>
 #include <fcntl.h>
 #include <errno.h>
+#include <stdint.h>
 
 #ifdef UNIX
 # include <sys/time.h>
@@ -375,7 +376,9 @@ render(ddjvu_page_t *page, int pageno)
     rowsize = rrect.w;
   else
     rowsize = rrect.w * 3; 
-  if (! (image = (char*)malloc(rowsize * rrect.h)))
+  if ((size_t) rowsize > SIZE_MAX / rrect.h)
+    die(i18n("Integer overflow when allocating image buffer for page %d"), pageno);
+  if (! (image = (char*)malloc((size_t) rowsize * rrect.h)))
     die(i18n("Cannot allocate image buffer for page %d"), pageno);
 
   /* Render */
openSUSE Build Service is sponsored by