File djvulibre-CVE-2021-32493.patch of Package djvulibre.30376

Index: djvulibre-3.5.27/libdjvu/GBitmap.cpp
===================================================================
--- djvulibre-3.5.27.orig/libdjvu/GBitmap.cpp	2021-05-12 11:00:00.612025762 +0200
+++ djvulibre-3.5.27/libdjvu/GBitmap.cpp	2021-05-12 11:00:00.684026181 +0200
@@ -69,6 +69,7 @@
 #include <stddef.h>
 #include <stdlib.h>
 #include <string.h>
+#include <climits>
 
 // - Author: Leon Bottou, 05/1997
 
@@ -1282,6 +1283,8 @@ GBitmap::decode(unsigned char *runs)
   // initialize pixel array
   if (nrows==0 || ncolumns==0)
     G_THROW( ERR_MSG("GBitmap.not_init") );
+  if (ncolumns > USHRT_MAX - border)
+    G_THROW("GBitmap: row size exceeds maximum (corrupted file?)");
   bytes_per_row = ncolumns + border;
   if (runs==0)
     G_THROW( ERR_MSG("GBitmap.null_arg") );
openSUSE Build Service is sponsored by