diff options
author | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2014-10-02 09:31:41 +0200 |
---|---|---|
committer | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2014-10-02 09:31:41 +0200 |
commit | 80ca627abb53d9e563f6ce9c52a05a50738a28d0 (patch) | |
tree | 1f16db5dd31d74ee482480745ee5b1f60d37e59e /libavcodec | |
parent | c9f2ec8a3464718641742a105179f828ccbfb392 (diff) | |
download | ffmpeg-80ca627abb53d9e563f6ce9c52a05a50738a28d0.tar.gz |
Check for oom in the dirac parser.
Fixes ticket #3996.
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/dirac_parser.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libavcodec/dirac_parser.c b/libavcodec/dirac_parser.c index 4119e3b660..8b7c55edef 100644 --- a/libavcodec/dirac_parser.c +++ b/libavcodec/dirac_parser.c @@ -139,6 +139,8 @@ static int dirac_combine_frame(AVCodecParserContext *s, AVCodecContext *avctx, void *new_buffer = av_fast_realloc(pc->buffer, &pc->buffer_size, pc->index + (*buf_size - pc->sync_offset)); + if (!new_buffer) + return AVERROR(ENOMEM); pc->buffer = new_buffer; memcpy(pc->buffer + pc->index, (*buf + pc->sync_offset), *buf_size - pc->sync_offset); @@ -149,6 +151,8 @@ static int dirac_combine_frame(AVCodecParserContext *s, AVCodecContext *avctx, DiracParseUnit pu1, pu; void *new_buffer = av_fast_realloc(pc->buffer, &pc->buffer_size, pc->index + next); + if (!new_buffer) + return AVERROR(ENOMEM); pc->buffer = new_buffer; memcpy(pc->buffer + pc->index, *buf, next); pc->index += next; |