# HG changeset patch # User bindhammer # Date 1283238887 0 # Node ID 10b5a51810f99388a9427a479c8caefbc3663b6b # Parent 7919771169c55e98f5946573ce5394a8cc21c941 Checking return values of av_malloc(z) and report an error in case. diff -r 7919771169c5 -r 10b5a51810f9 a64multienc.c --- a/a64multienc.c Tue Aug 31 00:33:56 2010 +0000 +++ b/a64multienc.c Tue Aug 31 07:14:47 2010 +0000 @@ -192,14 +192,21 @@ c->mc_frame_counter = 0; c->mc_use_5col = avctx->codec->id == CODEC_ID_A64_MULTI5; - c->mc_meta_charset = av_malloc (32000 * c->mc_lifetime * sizeof(int)); - c->mc_best_cb = av_malloc (CHARSET_CHARS * 32 * sizeof(int)); - c->mc_charmap = av_mallocz(1000 * c->mc_lifetime * sizeof(int)); - c->mc_colram = av_mallocz(CHARSET_CHARS * sizeof(uint8_t)); - c->mc_charset = av_malloc (0x800 * (INTERLACED+1) * sizeof(uint8_t)); + + if(!(c->mc_meta_charset = av_malloc (32000 * c->mc_lifetime * sizeof(int))) || + !(c->mc_best_cb = av_malloc (CHARSET_CHARS * 32 * sizeof(int))) || + !(c->mc_charmap = av_mallocz(1000 * c->mc_lifetime * sizeof(int))) || + !(c->mc_colram = av_mallocz(CHARSET_CHARS * sizeof(uint8_t))) || + !(c->mc_charset = av_malloc (0x800 * (INTERLACED+1) * sizeof(uint8_t)))) { + av_log(avctx, AV_LOG_ERROR, "Failed to allocate buffer memory.\n"); + return AVERROR(ENOMEM); + } /* set up extradata */ - avctx->extradata = av_mallocz(8 * 4 + FF_INPUT_BUFFER_PADDING_SIZE); + if(!(avctx->extradata = av_mallocz(8 * 4 + FF_INPUT_BUFFER_PADDING_SIZE))) { + av_log(avctx, AV_LOG_ERROR, "Failed to allocate memory for extradata.\n"); + return AVERROR(ENOMEM); + } avctx->extradata_size = 8 * 4; AV_WB32(avctx->extradata, c->mc_lifetime); AV_WB32(avctx->extradata+16, INTERLACED);