summaryrefslogtreecommitdiff
path: root/libavcodec/wmaprodec.c
diff options
context:
space:
mode:
authormaryam ebrahimzadeh <me22bee@outlook.com>2021-08-27 02:40:14 -0400
committerPaul B Mahol <onemda@gmail.com>2021-08-28 19:18:45 +0200
commit2c0d522963a8eaca8949946112656651baa367b2 (patch)
treea069fdac3e88b4890af3e1d9d695fa8346d8fcfd /libavcodec/wmaprodec.c
parent8c1b65feb63e70eaa22c1462163573bea8b91695 (diff)
downloadffmpeg-2c0d522963a8eaca8949946112656651baa367b2.tar.gz
avcodec/wmaprodec: return value check for init_get_bits
Also replace init_get_bits with init_get_bits8().
Diffstat (limited to 'libavcodec/wmaprodec.c')
-rw-r--r--libavcodec/wmaprodec.c9
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)) &&