Fri Feb 24 19:18:04 2017 UTC ()
Pullup ticket #5216 - requested by leot
print/mupdf: security fix

Revisions pulled up:
- print/mupdf/Makefile                                          1.44,1.46
- print/mupdf/distinfo                                          1.30-1.31
- print/mupdf/patches/patch-source_fitz_pixmap.c                1.1
- print/mupdf/patches/patch-source_tools_mudraw.c               1.1
- print/mupdf/patches/patch-thirdparty_mujs_jsdate.c            1.1
- print/mupdf/patches/patch-thirdparty_mujs_jsrun.c             1.1

---
   Module Name:	pkgsrc
   Committed By:	leot
   Date:		Mon Jan 30 14:06:05 UTC 2017

   Modified Files:
   	pkgsrc/print/mupdf: Makefile distinfo
   Added Files:
   	pkgsrc/print/mupdf/patches: patch-thirdparty_mujs_jsdate.c
   	    patch-thirdparty_mujs_jsrun.c

   Log Message:
   Backport fixes to mupdf-1.10a from upstream for CVE-2017-562[78]

   PKGREVISION++

---
   Module Name:	pkgsrc
   Committed By:	leot
   Date:		Sat Feb 11 09:39:05 UTC 2017

   Modified Files:
   	pkgsrc/print/mupdf: Makefile distinfo
   Added Files:
   	pkgsrc/print/mupdf/patches: patch-source_fitz_pixmap.c
   	    patch-source_tools_mudraw.c

   Log Message:
   Backport security fixes for upstream bugs 697514 and 697515 (CVE-2017-5896) to

   PKGREVISON++


(bsiegert)
diff -r1.42 -r1.42.2.1 pkgsrc/print/mupdf/Makefile
diff -r1.29 -r1.29.2.1 pkgsrc/print/mupdf/distinfo
diff -r0 -r1.1.2.2 pkgsrc/print/mupdf/patches/patch-source_fitz_pixmap.c
diff -r0 -r1.1.2.2 pkgsrc/print/mupdf/patches/patch-source_tools_mudraw.c
diff -r0 -r1.1.2.2 pkgsrc/print/mupdf/patches/patch-thirdparty_mujs_jsdate.c
diff -r0 -r1.1.2.2 pkgsrc/print/mupdf/patches/patch-thirdparty_mujs_jsrun.c

cvs diff -r1.42 -r1.42.2.1 pkgsrc/print/mupdf/Makefile (expand / switch to unified diff)

--- pkgsrc/print/mupdf/Makefile 2016/12/09 08:19:31 1.42
+++ pkgsrc/print/mupdf/Makefile 2017/02/24 19:18:04 1.42.2.1
@@ -1,17 +1,18 @@ @@ -1,17 +1,18 @@
1# $NetBSD: Makefile,v 1.42 2016/12/09 08:19:31 leot Exp $ 1# $NetBSD: Makefile,v 1.42.2.1 2017/02/24 19:18:04 bsiegert Exp $
2 2
3DISTNAME= mupdf-1.10a-source 3DISTNAME= mupdf-1.10a-source
4PKGNAME= ${DISTNAME:S/-source//} 4PKGNAME= ${DISTNAME:S/-source//}
 5PKGREVISION= 4
5CATEGORIES= print 6CATEGORIES= print
6MASTER_SITES= http://mupdf.com/downloads/archive/ 7MASTER_SITES= http://mupdf.com/downloads/archive/
7 8
8MAINTAINER= leot@NetBSD.org 9MAINTAINER= leot@NetBSD.org
9HOMEPAGE= http://mupdf.com/ 10HOMEPAGE= http://mupdf.com/
10COMMENT= Lightweight PDF, XPS and E-book viewer and toolkit 11COMMENT= Lightweight PDF, XPS and E-book viewer and toolkit
11LICENSE= gnu-agpl-v3 12LICENSE= gnu-agpl-v3
12 13
13USE_LANGUAGES= c99 14USE_LANGUAGES= c99
14USE_LIBTOOL= yes 15USE_LIBTOOL= yes
15USE_TOOLS+= pkg-config gmake 16USE_TOOLS+= pkg-config gmake
16 17
17INSTALLATION_DIRS+= bin include lib/pkgconfig 18INSTALLATION_DIRS+= bin include lib/pkgconfig

cvs diff -r1.29 -r1.29.2.1 pkgsrc/print/mupdf/distinfo (expand / switch to unified diff)

--- pkgsrc/print/mupdf/distinfo 2016/12/09 08:19:31 1.29
+++ pkgsrc/print/mupdf/distinfo 2017/02/24 19:18:04 1.29.2.1
@@ -1,12 +1,16 @@ @@ -1,12 +1,16 @@
1$NetBSD: distinfo,v 1.29 2016/12/09 08:19:31 leot Exp $ 1$NetBSD: distinfo,v 1.29.2.1 2017/02/24 19:18:04 bsiegert Exp $
2 2
3SHA1 (mupdf-1.10a-source.tar.gz) = 1c3a6e1d4406912004b8e2c09435199e6b425191 3SHA1 (mupdf-1.10a-source.tar.gz) = 1c3a6e1d4406912004b8e2c09435199e6b425191
4RMD160 (mupdf-1.10a-source.tar.gz) = bfb482681c6804db8a0fd9ec46b16ac6f9fffdf2 4RMD160 (mupdf-1.10a-source.tar.gz) = bfb482681c6804db8a0fd9ec46b16ac6f9fffdf2
5SHA512 (mupdf-1.10a-source.tar.gz) = 8c735963364985e74ceb38242afae555a3d2ee7c69abe3fe5c485e8613a83d996a58f231cb689a156019d431fa67d565503247d010b0a404054850483aed9fec 5SHA512 (mupdf-1.10a-source.tar.gz) = 8c735963364985e74ceb38242afae555a3d2ee7c69abe3fe5c485e8613a83d996a58f231cb689a156019d431fa67d565503247d010b0a404054850483aed9fec
6Size (mupdf-1.10a-source.tar.gz) = 42264707 bytes 6Size (mupdf-1.10a-source.tar.gz) = 42264707 bytes
7SHA1 (patch-Makethird) = 0a5951d543755c42053013f03b1c573b5da9c82c 7SHA1 (patch-Makethird) = 0a5951d543755c42053013f03b1c573b5da9c82c
8SHA1 (patch-ab) = 7bee583086078359ce04eacd9db3b4f03737a7bb 8SHA1 (patch-ab) = 7bee583086078359ce04eacd9db3b4f03737a7bb
9SHA1 (patch-ac) = d75afe8b05b85d042dc1baeaf8a9988f2e60338a 9SHA1 (patch-ac) = d75afe8b05b85d042dc1baeaf8a9988f2e60338a
10SHA1 (patch-ae) = c6b113818b32cb4470e8549c00a16e0b2f364ede 10SHA1 (patch-ae) = c6b113818b32cb4470e8549c00a16e0b2f364ede
11SHA1 (patch-source_fitz_load-jpx.c) = fbe6814536d37835a4daa5bb90b1f6cf8698f807 11SHA1 (patch-source_fitz_load-jpx.c) = fbe6814536d37835a4daa5bb90b1f6cf8698f807
 12SHA1 (patch-source_fitz_pixmap.c) = d0b3e44780fd64381424e367e5233ce1013dc974
 13SHA1 (patch-source_tools_mudraw.c) = 99b827e39767559a8d5b6b380f0bbb100f5125e7
12SHA1 (patch-thirdparty_mujs_Makefile) = f1da7cdf2c9e2e4bbac3e80ef486204a39b27e34 14SHA1 (patch-thirdparty_mujs_Makefile) = f1da7cdf2c9e2e4bbac3e80ef486204a39b27e34
 15SHA1 (patch-thirdparty_mujs_jsdate.c) = 020fcb9d1e77bd7ba10943070673d53bbcee573b
 16SHA1 (patch-thirdparty_mujs_jsrun.c) = 79f730436b1f67780468c10096d3dbfb5e14d5a5

File Added: pkgsrc/print/mupdf/patches/Attic/patch-source_fitz_pixmap.c
$NetBSD: patch-source_fitz_pixmap.c,v 1.1.2.2 2017/02/24 19:18:04 bsiegert Exp $

Backport a fix from upstream for CVE-2017-5896:

bug 697515: Fix out of bounds read in fz_subsample_pixmap

Pointer arithmetic for final special case was going wrong.

--- source/fitz/pixmap.c.orig
+++ source/fitz/pixmap.c
@@ -1104,6 +1104,7 @@ fz_subsample_pixmap_ARM(unsigned char *ptr, int w, int h, int f, int factor,
 	"@STACK:r1,<9>,factor,n,fwd,back,back2,fwd2,divX,back4,fwd4,fwd3,divY,back5,divXY\n"
 	"ldr	r4, [r13,#4*22]		@ r4 = divXY			\n"
 	"ldr	r5, [r13,#4*11]		@ for (nn = n; nn > 0; n--) {	\n"
+	"ldr	r8, [r13,#4*17]		@ r8 = back4			\n"
 	"18:				@				\n"
 	"mov	r14,#0			@ r14= v = 0			\n"
 	"sub	r5, r5, r1, LSL #8	@ for (xx = x; xx > 0; x--) {	\n"
@@ -1120,7 +1121,7 @@ fz_subsample_pixmap_ARM(unsigned char *ptr, int w, int h, int f, int factor,
 	"mul	r14,r4, r14		@ r14= v *= divX		\n"
 	"mov	r14,r14,LSR #16		@ r14= v >>= 16			\n"
 	"strb	r14,[r9], #1		@ *d++ = r14			\n"
-	"sub	r0, r0, r8		@ s -= back2			\n"
+	"sub	r0, r0, r8		@ s -= back4			\n"
 	"subs	r5, r5, #1		@ n--				\n"
 	"bgt	18b			@ }				\n"
 	"21:				@				\n"
@@ -1249,6 +1250,7 @@ fz_subsample_pixmap(fz_context *ctx, fz_pixmap *tile, int factor)
 		x += f;
 		if (x > 0)
 		{
+			int back4 = x * n - 1;
 			div = x * y;
 			for (nn = n; nn > 0; nn--)
 			{
@@ -1263,7 +1265,7 @@ fz_subsample_pixmap(fz_context *ctx, fz_pixmap *tile, int factor)
 					s -= back5;
 				}
 				*d++ = v / div;
-				s -= back2;
+				s -= back4;
 			}
 		}
 	}

File Added: pkgsrc/print/mupdf/patches/Attic/patch-source_tools_mudraw.c
$NetBSD: patch-source_tools_mudraw.c,v 1.1.2.2 2017/02/24 19:18:04 bsiegert Exp $

Backport a fix from upstream for bug 697514:

Bug 697514: Write SVG output to stdout if no output specified.

--- source/tools/mudraw.c.orig
+++ source/tools/mudraw.c
@@ -578,7 +578,7 @@ static void dodrawpage(fz_context *ctx, fz_page *page, fz_display_list *list, in
 		char buf[512];
 		fz_output *out;
 
-		if (!strcmp(output, "-"))
+		if (!output || !strcmp(output, "-"))
 			out = fz_stdout(ctx);
 		else
 		{

File Added: pkgsrc/print/mupdf/patches/Attic/patch-thirdparty_mujs_jsdate.c
$NetBSD: patch-thirdparty_mujs_jsdate.c,v 1.1.2.2 2017/02/24 19:18:04 bsiegert Exp $

Backport a fix from upstream for CVE-2017-5628:

Fix 697496: Check NAN before accessing array in MakeDay().

--- thirdparty/mujs/jsdate.c.orig
+++ thirdparty/mujs/jsdate.c
@@ -207,12 +207,17 @@ static double MakeDay(double y, double m, double date)
 	};
 
 	double yd, md;
+	int im;
 
 	y += floor(m / 12);
 	m = pmod(m, 12);
 
+	im = (int)m;
+	if (im < 0 || im >= 12)
+		return NAN;
+
 	yd = floor(TimeFromYear(y) / msPerDay);
-	md = firstDayOfMonth[InLeapYear(y)][(int)m];
+	md = firstDayOfMonth[InLeapYear(y)][im];
 
 	return yd + md + date - 1;
 }

File Added: pkgsrc/print/mupdf/patches/Attic/patch-thirdparty_mujs_jsrun.c
$NetBSD: patch-thirdparty_mujs_jsrun.c,v 1.1.2.2 2017/02/24 19:18:04 bsiegert Exp $

Backport a fix from upstream for CVE-2017-5627:

Fix 697497: Ensure array length is positive.

As a side effect when changing to using regular integers (and avoid the
nightmare of mixing signed and unsigned) we accidentally allowed negative
array lengths.

--- thirdparty/mujs/jsrun.c.orig
+++ thirdparty/mujs/jsrun.c
@@ -544,7 +544,7 @@ static void jsR_setproperty(js_State *J, js_Object *obj, const char *name)
 		if (!strcmp(name, "length")) {
 			double rawlen = jsV_tonumber(J, value);
 			int newlen = jsV_numbertointeger(rawlen);
-			if (newlen != rawlen)
+			if (newlen != rawlen || newlen < 0)
 				js_rangeerror(J, "array length");
 			jsV_resizearray(J, obj, newlen);
 			return;