summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2017-08-08 16:12:13 +0200
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2017-08-24 13:04:22 +0200
commitaafa44a74bff548792b1af28ba4b8d672f3600e6 (patch)
tree94b3eaf1aa9482159f54392f5288cf48087a4aa5
parentec99a8e9f3a55190f5943060ad1934fb55fbd67e (diff)
libs: decoder: mpeg4: fail if return value is not OK
Coverity scan bug: An assigned value that is never used may represent unnecessary computation, an incorrect algorithm, or possibly the need for cleanup or refactoring. In the return value of decode_slice() or gst_mpeg4_parse_video_packet_header() are not success, thus fail decode_packet() function.
-rw-r--r--gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c b/gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c
index 76360c75..3631930b 100644
--- a/gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c
+++ b/gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c
@@ -900,6 +900,8 @@ decode_packet (GstVaapiDecoderMpeg4 * decoder, GstMpeg4Packet packet)
if (first_slice) {
status = decode_slice (decoder, _data, video_packet.size, FALSE);
+ if (status != GST_VAAPI_DECODER_STATUS_SUCCESS)
+ return status;
first_slice = FALSE;
} else {
_data += video_packet.offset;
@@ -909,9 +911,13 @@ decode_packet (GstVaapiDecoderMpeg4 * decoder, GstMpeg4Packet packet)
gst_mpeg4_parse_video_packet_header (&priv->packet_hdr,
&priv->vol_hdr, &priv->vop_hdr, &priv->sprite_trajectory, _data,
_data_size);
+ if (ret != GST_MPEG4_PARSER_OK)
+ return GST_VAAPI_DECODER_STATUS_ERROR_BITSTREAM_PARSER;
status =
decode_slice (decoder, _data + priv->packet_hdr.size / 8,
video_packet.size - priv->packet_hdr.size / 8, TRUE);
+ if (status != GST_VAAPI_DECODER_STATUS_SUCCESS)
+ return status;
}
_data += video_packet.size;