From 0080402d36c23bfba44fde3a1d472295a15a09fb Mon Sep 17 00:00:00 2001 From: Kostya Shishkov Date: Sat, 19 Dec 2009 17:04:30 +0000 Subject: Improve handling allocated buffers in Xan decoder Originally committed as revision 20899 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/xan.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'libavcodec/xan.c') diff --git a/libavcodec/xan.c b/libavcodec/xan.c index e0bd780095..c11f60deb3 100644 --- a/libavcodec/xan.c +++ b/libavcodec/xan.c @@ -76,10 +76,14 @@ static av_cold int xan_decode_init(AVCodecContext *avctx) s->buffer1_size = avctx->width * avctx->height; s->buffer1 = av_malloc(s->buffer1_size); + if (!s->buffer1) + return -1; s->buffer2_size = avctx->width * avctx->height; s->buffer2 = av_malloc(s->buffer2_size + 130); - if (!s->buffer1 || !s->buffer2) + if (!s->buffer2) { + av_freep(&s->buffer1); return -1; + } return 0; } @@ -405,8 +409,8 @@ static av_cold int xan_decode_end(AVCodecContext *avctx) if (s->current_frame.data[0]) avctx->release_buffer(avctx, &s->current_frame); - av_free(s->buffer1); - av_free(s->buffer2); + av_freep(&s->buffer1); + av_freep(&s->buffer2); return 0; } -- cgit v1.2.3