diff options
author | Nicolas Dufresne <nicolas.dufresne@collabora.com> | 2020-01-27 17:16:02 -0500 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2020-02-04 12:13:29 +0000 |
commit | 9ac4904fa189aaa9db865c6916fed3d03fa42d83 (patch) | |
tree | eed382e2793ce9630b83f8c7096cf26c89a40d6d | |
parent | 0abe886c38b6282c28870d2d8da42ad66d517b31 (diff) |
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.c | 11 |
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]; |