summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2020-01-27 17:16:02 -0500
committerTim-Philipp Müller <tim@centricular.com>2020-02-04 12:13:29 +0000
commit9ac4904fa189aaa9db865c6916fed3d03fa42d83 (patch)
treeeed382e2793ce9630b83f8c7096cf26c89a40d6d
parent0abe886c38b6282c28870d2d8da42ad66d517b31 (diff)
downloadgstreamer-plugins-good-9ac4904fa189aaa9db865c6916fed3d03fa42d83.tar.gz
jpegdec: Check return value of gst_buffer_map()
Without this check, the element will crash instead of returning an error.
-rw-r--r--ext/jpeg/gstjpegdec.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/ext/jpeg/gstjpegdec.c b/ext/jpeg/gstjpegdec.c
index 544216846..aa868359c 100644
--- a/ext/jpeg/gstjpegdec.c
+++ b/ext/jpeg/gstjpegdec.c
@@ -1204,7 +1204,9 @@ gst_jpeg_dec_handle_frame (GstVideoDecoder * bdec, GstVideoCodecFrame * frame)
guint8 *data;
gsize nbytes;
- gst_buffer_map (frame->input_buffer, &dec->current_frame_map, GST_MAP_READ);
+ if (!gst_buffer_map (frame->input_buffer, &dec->current_frame_map,
+ GST_MAP_READ))
+ goto map_failed;
data = dec->current_frame_map.data;
nbytes = dec->current_frame_map.size;
@@ -1393,6 +1395,13 @@ need_more_data:
goto exit;
}
/* ERRORS */
+map_failed:
+ {
+ GST_ELEMENT_ERROR (dec, RESOURCE, READ, (_("Failed to read memory")),
+ ("gst_buffer_map() failed for READ access"));
+ ret = GST_FLOW_ERROR;
+ goto exit;
+ }
decode_error:
{
gchar err_msg[JMSG_LENGTH_MAX];