summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorminskim <minskim>2010-04-20 17:07:28 +0000
committerminskim <minskim>2010-04-20 17:07:28 +0000
commit9f89ddaf5b317ca96af6ab0caf3564138c5efc5d (patch)
tree588dd04477d662a73fb3c49559370b515058a198
parent9c425024a48cd34f7c08308a3118fd997aa4ec84 (diff)
downloadpkgsrc-9f89ddaf5b317ca96af6ab0caf3564138c5efc5d.tar.gz
Avoid integer overflow (CVE-2010-0739).
Patch from TeX Live repository (Revision 17559).
-rw-r--r--print/dvipsk/Makefile3
-rw-r--r--print/dvipsk/distinfo3
-rw-r--r--print/dvipsk/patches/patch-ab17
3 files changed, 21 insertions, 2 deletions
diff --git a/print/dvipsk/Makefile b/print/dvipsk/Makefile
index 7c378f0deae..334e42bf846 100644
--- a/print/dvipsk/Makefile
+++ b/print/dvipsk/Makefile
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.4 2010/01/16 03:47:31 minskim Exp $
+# $NetBSD: Makefile,v 1.5 2010/04/20 17:07:28 minskim Exp $
DISTNAME= texlive-20091011-source
PKGNAME= dvipsk-5.98
+PKGREVISION= 1
CATEGORIES= print
MASTER_SITES= ${MASTER_SITE_TEX_CTAN:=systems/texlive/Source/}
EXTRACT_SUFX= .tar.xz
diff --git a/print/dvipsk/distinfo b/print/dvipsk/distinfo
index 7aed89d00e2..0fbf4c621f9 100644
--- a/print/dvipsk/distinfo
+++ b/print/dvipsk/distinfo
@@ -1,6 +1,7 @@
-$NetBSD: distinfo,v 1.3 2010/01/16 03:47:31 minskim Exp $
+$NetBSD: distinfo,v 1.4 2010/04/20 17:07:28 minskim Exp $
SHA1 (texlive-20091011-source.tar.xz) = 82fc9fcdb82c63a00f4b08a51733c761cbda897d
RMD160 (texlive-20091011-source.tar.xz) = 81b86cd93e629d6b1b3d7918848dd76babc0d5a9
Size (texlive-20091011-source.tar.xz) = 29683728 bytes
SHA1 (patch-aa) = 825b091fecb17e8cc9135a0341b90e49ffd56baf
+SHA1 (patch-ab) = 4acf55b8027b9b2edc64c01568d3c22b50b7eafa
diff --git a/print/dvipsk/patches/patch-ab b/print/dvipsk/patches/patch-ab
new file mode 100644
index 00000000000..22e51443e80
--- /dev/null
+++ b/print/dvipsk/patches/patch-ab
@@ -0,0 +1,17 @@
+$NetBSD: patch-ab,v 1.3 2010/04/20 17:07:28 minskim Exp $
+
+--- dospecial.c.orig 2009-06-23 09:46:14.000000000 +0000
++++ dospecial.c
+@@ -334,6 +334,12 @@ predospecial(integer numbytes, Boolean s
+ static int omega_specials = 0;
+
+ if (nextstring + numbytes > maxstring) {
++ if (numbytes < 0
++ || (numbytes > 0 && 2 > INT_MAX / numbytes)
++ || 2 * numbytes > 1000 + 2 * numbytes) {
++ error("! Integer overflow in predospecial");
++ exit(1);
++ }
+ p = nextstring = mymalloc(1000 + 2 * numbytes) ;
+ maxstring = nextstring + 2 * numbytes + 700 ;
+ }