From: Nicolas Dufresne Date: Thu, 6 Aug 2015 22:04:41 +0000 (-0400) Subject: bayer2rgb: Protect against failing map X-Git-Tag: 1.19.3~507^2~8184 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7d6fd42726a9e1f2705ee21bbc756cdd16460750;p=platform%2Fupstream%2Fgstreamer.git bayer2rgb: Protect against failing map --- diff --git a/gst/bayer/gstbayer2rgb.c b/gst/bayer/gstbayer2rgb.c index 036ac2a..edeb6bf 100644 --- a/gst/bayer/gstbayer2rgb.c +++ b/gst/bayer/gstbayer2rgb.c @@ -462,14 +462,25 @@ gst_bayer2rgb_transform (GstBaseTransform * base, GstBuffer * inbuf, GstVideoFrame frame; GST_DEBUG ("transforming buffer"); - gst_buffer_map (inbuf, &map, GST_MAP_READ); - gst_video_frame_map (&frame, &filter->info, outbuf, GST_MAP_WRITE); + + if (!gst_buffer_map (inbuf, &map, GST_MAP_READ)) + goto map_failed; + + if (!gst_video_frame_map (&frame, &filter->info, outbuf, GST_MAP_WRITE)) { + gst_buffer_unmap (inbuf, &map); + goto map_failed; + } output = GST_VIDEO_FRAME_PLANE_DATA (&frame, 0); gst_bayer2rgb_process (filter, output, filter->width * 4, map.data, filter->width); + gst_video_frame_unmap (&frame); gst_buffer_unmap (inbuf, &map); return GST_FLOW_OK; + +map_failed: + GST_WARNING_OBJECT (base, "Could not map buffer, skipping"); + return GST_FLOW_OK; }