summaryrefslogtreecommitdiff
path: root/print/xpdf/patches/patch-aq
diff options
context:
space:
mode:
Diffstat (limited to 'print/xpdf/patches/patch-aq')
-rw-r--r--print/xpdf/patches/patch-aq32
1 files changed, 32 insertions, 0 deletions
diff --git a/print/xpdf/patches/patch-aq b/print/xpdf/patches/patch-aq
new file mode 100644
index 00000000000..26fca77eb60
--- /dev/null
+++ b/print/xpdf/patches/patch-aq
@@ -0,0 +1,32 @@
+$NetBSD: patch-aq,v 1.1 2006/01/22 23:13:33 tron Exp $
+
+--- xpdf/JPXStream.cc.orig 2006-01-22 22:52:51.000000000 +0000
++++ xpdf/JPXStream.cc 2006-01-22 22:48:31.000000000 +0000
+@@ -7,6 +7,7 @@
+ //========================================================================
+
+ #include <aconf.h>
++#include <limits.h>
+
+ #ifdef USE_GCC_PRAGMAS
+ #pragma implementation
+@@ -818,13 +819,15 @@
+ / img.xTileSize;
+ img.nYTiles = (img.ySize - img.yTileOffset + img.yTileSize - 1)
+ / img.yTileSize;
+- nTiles = img.nXTiles * img.nYTiles;
+ // check for overflow before allocating memory
+- if (nTiles == 0 || nTiles / img.nXTiles != img.nYTiles) {
+- error(getPos(), "Bad tile count in JPX SIZ marker segment");
+- return gFalse;
++ if (img.nXTiles <= 0 || img.nYTiles <= 0 ||
++ img.nXTiles >= INT_MAX/img.nYTiles) {
++ error(getPos(), "Bad tile count in JPX SIZ marker segment");
++ return gFalse;
+ }
++ nTiles = img.nXTiles * img.nYTiles;
+ img.tiles = (JPXTile *)gmallocn(nTiles, sizeof(JPXTile));
++
+ for (i = 0; i < img.nXTiles * img.nYTiles; ++i) {
+ img.tiles[i].tileComps = (JPXTileComp *)gmallocn(img.nComps,
+ sizeof(JPXTileComp));