cavs: Check for negative cbp

Sample-Id: 00000647-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
This commit is contained in:
Luca Barbato 2013-10-13 03:30:06 +02:00
parent 1b20d0f581
commit 39185ec4fa
1 changed files with 3 additions and 3 deletions

View File

@ -602,8 +602,8 @@ static inline int decode_residual_inter(AVSContext *h)
/* get coded block pattern */ /* get coded block pattern */
int cbp = get_ue_golomb(&h->gb); int cbp = get_ue_golomb(&h->gb);
if (cbp > 63) { if (cbp > 63 || cbp < 0) {
av_log(h->avctx, AV_LOG_ERROR, "illegal inter cbp\n"); av_log(h->avctx, AV_LOG_ERROR, "illegal inter cbp %d\n", cbp);
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
} }
h->cbp = cbp_tab[cbp][1]; h->cbp = cbp_tab[cbp][1];
@ -673,7 +673,7 @@ static int decode_mb_i(AVSContext *h, int cbp_code)
/* get coded block pattern */ /* get coded block pattern */
if (h->cur.f->pict_type == AV_PICTURE_TYPE_I) if (h->cur.f->pict_type == AV_PICTURE_TYPE_I)
cbp_code = get_ue_golomb(gb); cbp_code = get_ue_golomb(gb);
if (cbp_code > 63) { if (cbp_code > 63 || cbp_code < 0) {
av_log(h->avctx, AV_LOG_ERROR, "illegal intra cbp\n"); av_log(h->avctx, AV_LOG_ERROR, "illegal intra cbp\n");
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
} }