From 52d74419420e95c68e9384b39a25420d5f880a73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Wed, 30 Nov 2016 10:55:16 +0200 Subject: [PATCH] audioconvert: Error out if mapping input/output buffer failed --- gst/audioconvert/gstaudioconvert.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/gst/audioconvert/gstaudioconvert.c b/gst/audioconvert/gstaudioconvert.c index 0b7c19cc0b..f0f7a7a40a 100644 --- a/gst/audioconvert/gstaudioconvert.c +++ b/gst/audioconvert/gstaudioconvert.c @@ -732,12 +732,14 @@ gst_audio_convert_transform (GstBaseTransform * base, GstBuffer * inbuf, && gst_buffer_n_memory (inbuf) == 1 && gst_memory_is_writable (gst_buffer_peek_memory (inbuf, 0)); - gst_buffer_map (inbuf, &srcmap, - inbuf_writable ? GST_MAP_READWRITE : GST_MAP_READ); + if (!gst_buffer_map (inbuf, &srcmap, + inbuf_writable ? GST_MAP_READWRITE : GST_MAP_READ)) + goto inmap_error; } else { inbuf_writable = TRUE; } - gst_buffer_map (outbuf, &dstmap, GST_MAP_WRITE); + if (!gst_buffer_map (outbuf, &dstmap, GST_MAP_WRITE)) + goto outmap_error; /* check in and outsize */ if (inbuf != outbuf) { @@ -790,6 +792,20 @@ convert_error: ret = GST_FLOW_ERROR; goto done; } +inmap_error: + { + GST_ELEMENT_ERROR (this, STREAM, FORMAT, + (NULL), ("failed to map input buffer")); + return GST_FLOW_ERROR; + } +outmap_error: + { + GST_ELEMENT_ERROR (this, STREAM, FORMAT, + (NULL), ("failed to map output buffer")); + if (inbuf != outbuf) + gst_buffer_unmap (inbuf, &srcmap); + return GST_FLOW_ERROR; + } } static GstFlowReturn