From: Thiago Santos Date: Tue, 25 Jan 2011 02:32:30 +0000 (-0300) Subject: rsvgoverlay: Do not segfault on unexistent files X-Git-Tag: 1.19.3~507^2~16062^2~118 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a875342c54c470c75e53f9a30b810b7af859813e;p=platform%2Fupstream%2Fgstreamer.git rsvgoverlay: Do not segfault on unexistent files When passing an unexistent file to rsvgoverlay it would crash because the svg loading would fail without setting an error. This patch makes it check if the handle was actually created and logs an error in case it didn't. Maybe it should post an error to the bus, but the previous error handling didn't, so I just followed the same logic. --- diff --git a/ext/rsvg/gstrsvgoverlay.c b/ext/rsvg/gstrsvgoverlay.c index 60fd167..2a5bdc1 100644 --- a/ext/rsvg/gstrsvgoverlay.c +++ b/ext/rsvg/gstrsvgoverlay.c @@ -126,10 +126,14 @@ gst_rsvg_overlay_set_svg_data (GstRsvgOverlay * overlay, const gchar * data, else overlay->handle = rsvg_handle_new_from_data ((guint8 *) data, size, &error); - if (error) { - GST_ERROR_OBJECT (overlay, "Cannot read SVG data: %s\n%s", - error->message, data); - g_error_free (error); + if (error || overlay->handle == NULL) { + if (error) { + GST_ERROR_OBJECT (overlay, "Cannot read SVG data: %s\n%s", + error->message, data); + g_error_free (error); + } else { + GST_ERROR_OBJECT (overlay, "Cannot read SVG data: %s", data); + } } else { /* Get SVG dimension. */ RsvgDimensionData svg_dimension;