diff options
author | Vittorio Giovara <vittorio.giovara@gmail.com> | 2015-05-31 14:54:29 +0200 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2015-05-31 15:03:31 +0200 |
commit | 41658bc88553dab8499e4dfca311559dcbae2674 (patch) | |
tree | 5d401deaa1da7abc8a80c49d9b32d3f4894fe012 /libavcodec/libtheoraenc.c | |
parent | 8df5fbf0b0c0ba12b033e61c28fc240f4bccba47 (diff) | |
download | ffmpeg-41658bc88553dab8499e4dfca311559dcbae2674.tar.gz |
libtheora: Check memory allocation
Diffstat (limited to 'libavcodec/libtheoraenc.c')
-rw-r--r-- | libavcodec/libtheoraenc.c | 6 |
1 files changed, 6 insertions, 0 deletions
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) { |