X-Git-Url: https://git.piment-noir.org/?p=deb_ffmpeg.git;a=blobdiff_plain;f=ffmpeg%2Flibavcodec%2Fdirac_parser.c;h=45ded5a7795967b2cfc326ed303a172785bde214;hp=4119e3b66000fb07ac7d5ac0aacb25afad66506d;hb=f6fa7814ccfe3e76514b36cf04f5cd3cb657c8cf;hpb=2ba45a602cbfa7b771effba9b11bb4245c21bc00 diff --git a/ffmpeg/libavcodec/dirac_parser.c b/ffmpeg/libavcodec/dirac_parser.c index 4119e3b..45ded5a 100644 --- a/ffmpeg/libavcodec/dirac_parser.c +++ b/ffmpeg/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; @@ -247,7 +251,7 @@ static void dirac_parse_close(AVCodecParserContext *s) DiracParseContext *pc = s->priv_data; if (pc->buffer_size > 0) - av_free(pc->buffer); + av_freep(&pc->buffer); } AVCodecParser ff_dirac_parser = {