[librsvg] feGaussianBlur: Don't try to blur an invalid surface
- From: Federico Mena Quintero <federico src gnome org>
 
- To: commits-list gnome org
 
- Cc: 
 
- Subject: [librsvg] feGaussianBlur: Don't try to blur an invalid surface
 
- Date: Fri,  7 Jul 2017 16:53:22 +0000 (UTC)
 
commit 1910a0e0f77aa344a344758c15e83142dd30da4e
Author: Federico Mena Quintero <federico gnome org>
Date:   Fri Jul 7 11:29:04 2017 -0500
    feGaussianBlur: Don't try to blur an invalid surface
    
    This is a stop-gap measure to deal with invalid surfaces being fed
    to this filter.  We get a surface which is not in
    CAIRO_STATUS_SUCCESS, and so its width/height are 0.
    
    In reality we should be able to bubble up errors from
    cairo_*_surface_create(), but we don't do that yet.
 rsvg-filter.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
---
diff --git a/rsvg-filter.c b/rsvg-filter.c
index bd6c8f2..394ded1 100644
--- a/rsvg-filter.c
+++ b/rsvg-filter.c
@@ -1973,6 +1973,11 @@ rsvg_filter_primitive_gaussian_blur_render (RsvgNode *node, RsvgFilterPrimitive
     width = cairo_image_surface_get_width (in);
     height = cairo_image_surface_get_height (in);
 
+    if (width == 0 || height == 0) {
+        cairo_surface_destroy (in);
+        return;
+    }
+
     output = _rsvg_image_surface_new (width, height);
 
     if (output == NULL) {
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]