From 9801e7c27371320bec12fc7465e7b653bcb40e5e Mon Sep 17 00:00:00 2001 From: alihanozturk Date: Sat, 2 Apr 2016 16:23:13 +0300 Subject: [PATCH] add patch --- desktop/gnome2/librsvg/files/bgo759084.patch | 52 +++++++++++++++++++ desktop/gnome2/librsvg/files/kill-vapi.patch | 2 +- .../gnome2/librsvg/files/librsvg-vala.patch | 2 +- 3 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 desktop/gnome2/librsvg/files/bgo759084.patch diff --git a/desktop/gnome2/librsvg/files/bgo759084.patch b/desktop/gnome2/librsvg/files/bgo759084.patch new file mode 100644 index 0000000000..6690aaa7f7 --- /dev/null +++ b/desktop/gnome2/librsvg/files/bgo759084.patch @@ -0,0 +1,52 @@ +From d937c691678803ceda6be701587d997ccd03a1da Mon Sep 17 00:00:00 2001 +From: Benjamin Otte +Date: Fri, 29 Jan 2016 12:49:55 +0100 +Subject: Don't crash when filters don't exist + +We put a new surface on the stack if a filter existed by name but we +didn't pop it if the name didn't resolve to a real filter. + +New test: crash/bug759084.svg + +https://bugzilla.gnome.org/show_bug.cgi?id=759084 +--- + rsvg-cairo-draw.c | 6 +++--- + tests/fixtures/crash/bug759084.svg | 9 +++++++++ + 2 files changed, 12 insertions(+), 3 deletions(-) + create mode 100644 tests/fixtures/crash/bug759084.svg + +diff --git a/rsvg-cairo-draw.c b/rsvg-cairo-draw.c +index 4d8fbc2..4152cb7 100644 +--- a/rsvg-cairo-draw.c ++++ b/rsvg-cairo-draw.c +@@ -819,10 +819,10 @@ rsvg_cairo_pop_render_stack (RsvgDrawingCtx * ctx) + cairo_surface_t *output; + + filter = rsvg_acquire_node (ctx, state->filter); +- if (filter && RSVG_NODE_TYPE (filter) == RSVG_NODE_TYPE_FILTER) { +- output = render->surfaces_stack->data; +- render->surfaces_stack = g_list_delete_link (render->surfaces_stack, render->surfaces_stack); ++ output = render->surfaces_stack->data; ++ render->surfaces_stack = g_list_delete_link (render->surfaces_stack, render->surfaces_stack); + ++ if (filter && RSVG_NODE_TYPE (filter) == RSVG_NODE_TYPE_FILTER) { + needs_destroy = TRUE; + surface = rsvg_filter_render ((RsvgFilter *) filter, output, ctx, &render->bbox, "2103"); + /* Don't destroy the output surface, it's owned by child_cr */ +diff --git a/tests/fixtures/crash/bug759084.svg b/tests/fixtures/crash/bug759084.svg +new file mode 100644 +index 0000000..9e8f8f1 +--- /dev/null ++++ b/tests/fixtures/crash/bug759084.svg +@@ -0,0 +1,9 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ +-- +cgit v0.12 \ No newline at end of file diff --git a/desktop/gnome2/librsvg/files/kill-vapi.patch b/desktop/gnome2/librsvg/files/kill-vapi.patch index d37ee40e0b..a640228cd6 100644 --- a/desktop/gnome2/librsvg/files/kill-vapi.patch +++ b/desktop/gnome2/librsvg/files/kill-vapi.patch @@ -173,4 +173,4 @@ diff -Nuar librsvg-2.39.0.orig/Makefile.in librsvg-2.39.0/Makefile.in -@ENABLE_VAPIGEN_TRUE@@HAVE_INTROSPECTION_TRUE@librsvg-$(RSVG_API_VERSION).vapi: Rsvg-$(RSVG_API_VERSION).gir # ChangeLog generation - + \ No newline at end of file diff --git a/desktop/gnome2/librsvg/files/librsvg-vala.patch b/desktop/gnome2/librsvg/files/librsvg-vala.patch index 9d91a066e4..07cd85d408 100644 --- a/desktop/gnome2/librsvg/files/librsvg-vala.patch +++ b/desktop/gnome2/librsvg/files/librsvg-vala.patch @@ -10,4 +10,4 @@ diff -up librsvg-2.37.0/configure.in.vala librsvg-2.37.0/configure.in dnl =========================================================================== -diff -up librsvg-2.37.0/Rsvg-2.0-custom.vala librsvg-2.37.0/Rsvg-2.0-custom +diff -up librsvg-2.37.0/Rsvg-2.0-custom.vala librsvg-2.37.0/Rsvg-2.0-custom \ No newline at end of file