Diego Biurrun <[email protected]> writes: > User-provided data should never trigger an assert; return error instead. > Also fix an instance of get_bits where get_bits_long should have been used. > > This eliminates the following warning: > libavcodec/vaapi_mpeg2.c:112:14: warning: variable 'start_code' set but not > used > --- > libavcodec/vaapi_mpeg2.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/libavcodec/vaapi_mpeg2.c b/libavcodec/vaapi_mpeg2.c > index 561f4bf..b608246 100644 > --- a/libavcodec/vaapi_mpeg2.c > +++ b/libavcodec/vaapi_mpeg2.c > @@ -109,14 +109,14 @@ static int vaapi_mpeg2_decode_slice(AVCodecContext > *avctx, const uint8_t *buffer > MpegEncContext * const s = avctx->priv_data; > VASliceParameterBufferMPEG2 *slice_param; > GetBitContext gb; > - uint32_t start_code, quantiser_scale_code, intra_slice_flag, > macroblock_offset; > + uint32_t quantiser_scale_code, intra_slice_flag, macroblock_offset; > > av_dlog(avctx, "vaapi_mpeg2_decode_slice(): buffer %p, size %d\n", > buffer, size); > > /* Determine macroblock_offset */ > init_get_bits(&gb, buffer, 8 * size); > - start_code = get_bits(&gb, 32); > - assert((start_code & 0xffffff00) == 0x00000100); > + if (get_bits_long(&gb, 32) >> 8 != 1) /* start code */ > + return AVERROR_INVALIDDATA; > quantiser_scale_code = get_bits(&gb, 5); > intra_slice_flag = get_bits1(&gb); > if (intra_slice_flag) { > --
Looks OK. -- Måns Rullgård [email protected] _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
