diff options
author | maryam ebrahimzadeh <me22bee@outlook.com> | 2021-08-27 02:40:14 -0400 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2021-08-28 19:18:45 +0200 |
commit | 2c0d522963a8eaca8949946112656651baa367b2 (patch) | |
tree | a069fdac3e88b4890af3e1d9d695fa8346d8fcfd | |
parent | 8c1b65feb63e70eaa22c1462163573bea8b91695 (diff) | |
download | ffmpeg-2c0d522963a8eaca8949946112656651baa367b2.tar.gz |
avcodec/wmaprodec: return value check for init_get_bits
Also replace init_get_bits with init_get_bits8().
-rw-r--r-- | libavcodec/wmaprodec.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libavcodec/wmaprodec.c b/libavcodec/wmaprodec.c index 3e7ec1a8b9..66271c4037 100644 --- a/libavcodec/wmaprodec.c +++ b/libavcodec/wmaprodec.c @@ -1618,6 +1618,7 @@ static int decode_packet(AVCodecContext *avctx, WMAProDecodeCtx *s, int buf_size = avpkt->size; int num_bits_prev_frame; int packet_sequence_number; + int ret; *got_frame_ptr = 0; @@ -1669,7 +1670,9 @@ static int decode_packet(AVCodecContext *avctx, WMAProDecodeCtx *s, s->buf_bit_size = buf_size << 3; /** parse packet header */ - init_get_bits(gb, buf, s->buf_bit_size); + ret = init_get_bits8(gb, buf, buf_size); + if (ret < 0) + return ret; if (avctx->codec_id != AV_CODEC_ID_XMA2) { packet_sequence_number = get_bits(gb, 4); skip_bits(gb, 2); @@ -1737,7 +1740,9 @@ static int decode_packet(AVCodecContext *avctx, WMAProDecodeCtx *s, } s->buf_bit_size = (avpkt->size - s->next_packet_start) << 3; - init_get_bits(gb, avpkt->data, s->buf_bit_size); + ret = init_get_bits8(gb, avpkt->data, avpkt->size - s->next_packet_start); + if (ret < 0) + return ret; skip_bits(gb, s->packet_offset); if (s->len_prefix && remaining_bits(s, gb) > s->log2_frame_size && (frame_size = show_bits(gb, s->log2_frame_size)) && |