avcodec/truemotion2: use av_reallocp_array() and check return value

Also reset tok_lens if reallocation fails.

Fixes #2946.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
pull/35/merge
Paul B Mahol 11 years ago
parent 7d75fb381b
commit 6e07bb3639
  1. 6
      libavcodec/truemotion2.c

@ -342,7 +342,11 @@ static int tm2_read_stream(TM2Context *ctx, const uint8_t *buf, int stream_id, i
tm2_free_codes(&codes); tm2_free_codes(&codes);
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
} }
ctx->tokens[stream_id] = av_realloc(ctx->tokens[stream_id], toks * sizeof(int)); ret = av_reallocp_array(&ctx->tokens[stream_id], toks, sizeof(int));
if (ret < 0) {
ctx->tok_lens[stream_id] = 0;
return ret;
}
ctx->tok_lens[stream_id] = toks; ctx->tok_lens[stream_id] = toks;
len = bytestream2_get_be32(&gb); len = bytestream2_get_be32(&gb);
if (len > 0) { if (len > 0) {

Loading…
Cancel
Save