Browse Source

shorten: validate block size

tags/n0.9
Justin Ruggles 14 years ago
parent
commit
cfa317f67d
1 changed files with 15 additions and 2 deletions
  1. +15
    -2
      libavcodec/shorten.c

+ 15
- 2
libavcodec/shorten.c View File

@@ -330,8 +330,16 @@ static int read_header(ShortenContext *s)

/* get blocksize if version > 0 */
if (s->version > 0) {
int skip_bytes;
s->blocksize = get_uint(s, av_log2(DEFAULT_BLOCK_SIZE));
int skip_bytes, blocksize;

blocksize = get_uint(s, av_log2(DEFAULT_BLOCK_SIZE));
if (!blocksize || blocksize > MAX_BLOCKSIZE) {
av_log(s->avctx, AV_LOG_ERROR, "invalid or unsupported block size: %d\n",
blocksize);
return AVERROR(EINVAL);
}
s->blocksize = blocksize;

maxnlpc = get_uint(s, LPCQSIZE);
s->nmean = get_uint(s, 0);

@@ -456,6 +464,11 @@ static int shorten_decode_frame(AVCodecContext *avctx,
av_log(avctx, AV_LOG_ERROR, "Increasing block size is not supported\n");
return AVERROR_PATCHWELCOME;
}
if (!blocksize || blocksize > MAX_BLOCKSIZE) {
av_log(avctx, AV_LOG_ERROR, "invalid or unsupported "
"block size: %d\n", blocksize);
return AVERROR(EINVAL);
}
s->blocksize = blocksize;
break;
}


Loading…
Cancel
Save