From 41658bc88553dab8499e4dfca311559dcbae2674 Mon Sep 17 00:00:00 2001 From: Vittorio Giovara Date: Sun, 31 May 2015 14:54:29 +0200 Subject: libtheora: Check memory allocation --- libavcodec/libtheoraenc.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'libavcodec/libtheoraenc.c') diff --git a/libavcodec/libtheoraenc.c b/libavcodec/libtheoraenc.c index 462bc942ce..097336bb95 100644 --- a/libavcodec/libtheoraenc.c +++ b/libavcodec/libtheoraenc.c @@ -101,6 +101,8 @@ static int get_stats(AVCodecContext *avctx, int eos) if (!eos) { h->stats = av_fast_realloc(h->stats, &h->stats_size, h->stats_offset + bytes); + if (!h->stats) + return AVERROR(ENOMEM); memcpy(h->stats + h->stats_offset, buf, bytes); h->stats_offset += bytes; } else { @@ -108,6 +110,8 @@ static int get_stats(AVCodecContext *avctx, int eos) // libtheora generates a summary header at the end memcpy(h->stats, buf, bytes); avctx->stats_out = av_malloc(b64_size); + if (!avctx->stats_out) + return AVERROR(ENOMEM); av_base64_encode(avctx->stats_out, b64_size, h->stats, h->stats_offset); } return 0; @@ -131,6 +135,8 @@ static int submit_stats(AVCodecContext *avctx) } h->stats_size = strlen(avctx->stats_in) * 3/4; h->stats = av_malloc(h->stats_size); + if (!h->stats) + return AVERROR(ENOMEM); h->stats_size = av_base64_decode(h->stats, avctx->stats_in, h->stats_size); } while (h->stats_size - h->stats_offset > 0) { -- cgit v1.2.3