rsvgdec: Unref handle and output state on error paths
authorSebastian Dröge <sebastian@centricular.com>
Mon, 19 May 2014 07:12:14 +0000 (09:12 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Mon, 19 May 2014 07:12:14 +0000 (09:12 +0200)
CID 1214604

ext/rsvg/gstrsvgdec.c

index 624c9e9..a17c935 100644 (file)
@@ -191,6 +191,7 @@ gst_rsvg_decode_image (GstRsvgDec * rsvg, GstBuffer * buffer,
 
   if (ret != GST_FLOW_OK) {
     g_object_unref (handle);
+    gst_video_codec_state_unref (output_state);
     GST_ERROR_OBJECT (rsvg, "Buffer allocation failed %s",
         gst_flow_get_name (ret));
     return ret;
@@ -205,6 +206,8 @@ gst_rsvg_decode_image (GstRsvgDec * rsvg, GstBuffer * buffer,
           &gst_video_decoder_get_output_state (decoder)->info,
           frame->output_buffer, GST_MAP_READWRITE)) {
     GST_ERROR_OBJECT (rsvg, "Failed to get SVG image");
+    g_object_unref (handle);
+    gst_video_codec_state_unref (output_state);
     return GST_FLOW_ERROR;
   }
   surface =