mupdf: security fix for CVE-2017-5627 and CVE-2017-5628.
Patches were backported by NetBSD.
This commit is contained in:
parent
9d7f777c38
commit
f86d9179e5
3 changed files with 49 additions and 1 deletions
27
srcpkgs/mupdf/patches/patch-thirdparty_mujs_jsdate.c
Normal file
27
srcpkgs/mupdf/patches/patch-thirdparty_mujs_jsdate.c
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
$NetBSD: patch-thirdparty_mujs_jsdate.c,v 1.1 2017/01/30 14:06:05 leot 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;
|
||||||
|
}
|
21
srcpkgs/mupdf/patches/patch-thirdparty_mujs_jsrun.c
Normal file
21
srcpkgs/mupdf/patches/patch-thirdparty_mujs_jsrun.c
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
$NetBSD: patch-thirdparty_mujs_jsrun.c,v 1.1 2017/01/30 14:06:05 leot 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;
|
|
@ -1,7 +1,7 @@
|
||||||
# Template file for 'mupdf'
|
# Template file for 'mupdf'
|
||||||
pkgname=mupdf
|
pkgname=mupdf
|
||||||
version=1.10a
|
version=1.10a
|
||||||
revision=1
|
revision=2
|
||||||
wrksrc="${pkgname}-${version}-source"
|
wrksrc="${pkgname}-${version}-source"
|
||||||
hostmakedepends="pkg-config zlib-devel libcurl-devel freetype-devel
|
hostmakedepends="pkg-config zlib-devel libcurl-devel freetype-devel
|
||||||
libjpeg-turbo-devel jbig2dec-devel libXext-devel libXcursor-devel
|
libjpeg-turbo-devel jbig2dec-devel libXext-devel libXcursor-devel
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue