summaryrefslogtreecommitdiff
path: root/gnu/packages/patches/mupdf-CVE-2017-5991.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/mupdf-CVE-2017-5991.patch')
-rw-r--r--gnu/packages/patches/mupdf-CVE-2017-5991.patch101
1 files changed, 0 insertions, 101 deletions
diff --git a/gnu/packages/patches/mupdf-CVE-2017-5991.patch b/gnu/packages/patches/mupdf-CVE-2017-5991.patch
deleted file mode 100644
index 1fa6dc3466..0000000000
--- a/gnu/packages/patches/mupdf-CVE-2017-5991.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-Fix CVE-2017-5991:
-
-https://bugs.ghostscript.com/show_bug.cgi?id=697500
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5991
-https://security-tracker.debian.org/tracker/CVE-2017-5991
-
-Patch lifted from upstream source repository:
-
-http://git.ghostscript.com/?p=mupdf.git;h=1912de5f08e90af1d9d0a9791f58ba3afdb9d465
-
-From 1912de5f08e90af1d9d0a9791f58ba3afdb9d465 Mon Sep 17 00:00:00 2001
-From: Robin Watts <robin.watts@artifex.com>
-Date: Thu, 9 Feb 2017 15:49:15 +0000
-Subject: [PATCH] Bug 697500: Fix NULL ptr access.
-
-Cope better with errors during rendering - avoid letting the
-gstate stack get out of sync.
-
-This avoids us ever getting into the situation of popping
-a clip when we should be popping a mask or a group. This was
-causing an unexpected case in the painting.
----
- source/pdf/pdf-op-run.c | 26 ++++++++++++++++++--------
- 1 file changed, 18 insertions(+), 8 deletions(-)
-
-diff --git a/source/pdf/pdf-op-run.c b/source/pdf/pdf-op-run.c
-index a3ea895d..f1eac8d3 100644
---- a/source/pdf/pdf-op-run.c
-+++ b/source/pdf/pdf-op-run.c
-@@ -1213,6 +1213,7 @@ pdf_run_xobject(fz_context *ctx, pdf_run_processor *proc, pdf_xobject *xobj, pdf
- pdf_run_processor *pr = (pdf_run_processor *)proc;
- pdf_gstate *gstate = NULL;
- int oldtop = 0;
-+ int oldbot = -1;
- fz_matrix local_transform = *transform;
- softmask_save softmask = { NULL };
- int gparent_save;
-@@ -1232,16 +1233,17 @@ pdf_run_xobject(fz_context *ctx, pdf_run_processor *proc, pdf_xobject *xobj, pdf
- fz_var(cleanup_state);
- fz_var(gstate);
- fz_var(oldtop);
-+ fz_var(oldbot);
-
- gparent_save = pr->gparent;
- pr->gparent = pr->gtop;
-+ oldtop = pr->gtop;
-
- fz_try(ctx)
- {
- pdf_gsave(ctx, pr);
-
- gstate = pr->gstate + pr->gtop;
-- oldtop = pr->gtop;
-
- pdf_xobject_bbox(ctx, xobj, &xobj_bbox);
- pdf_xobject_matrix(ctx, xobj, &xobj_matrix);
-@@ -1302,12 +1304,25 @@ pdf_run_xobject(fz_context *ctx, pdf_run_processor *proc, pdf_xobject *xobj, pdf
-
- doc = pdf_get_bound_document(ctx, xobj->obj);
-
-+ oldbot = pr->gbot;
-+ pr->gbot = pr->gtop;
-+
- pdf_process_contents(ctx, (pdf_processor*)pr, doc, resources, xobj->obj, NULL);
- }
- fz_always(ctx)
- {
-+ /* Undo any gstate mismatches due to the pdf_process_contents call */
-+ if (oldbot != -1)
-+ {
-+ while (pr->gtop > pr->gbot)
-+ {
-+ pdf_grestore(ctx, pr);
-+ }
-+ pr->gbot = oldbot;
-+ }
-+
- if (cleanup_state >= 3)
-- pdf_grestore(ctx, pr); /* Remove the clippath */
-+ pdf_grestore(ctx, pr); /* Remove the state we pushed for the clippath */
-
- /* wrap up transparency stacks */
- if (transparency)
-@@ -1341,13 +1356,8 @@ pdf_run_xobject(fz_context *ctx, pdf_run_processor *proc, pdf_xobject *xobj, pdf
- pr->gstate[pr->gparent].ctm = gparent_save_ctm;
- pr->gparent = gparent_save;
-
-- if (gstate)
-- {
-- while (oldtop < pr->gtop)
-- pdf_grestore(ctx, pr);
--
-+ while (oldtop < pr->gtop)
- pdf_grestore(ctx, pr);
-- }
-
- pdf_unmark_obj(ctx, xobj->obj);
- }
---
-2.12.0
-