From f2193569a548fde059eb877661ec8a224c9fae1f Mon Sep 17 00:00:00 2001 From: Clément Bœsch Date: Fri, 13 Jan 2012 02:14:54 +0100 Subject: 8svx: fix memleak in iff-fibonacci fate test. --- libavcodec/8svx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'libavcodec/8svx.c') diff --git a/libavcodec/8svx.c b/libavcodec/8svx.c index a91f001531..f42a35b20b 100644 --- a/libavcodec/8svx.c +++ b/libavcodec/8svx.c @@ -110,7 +110,7 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data, /* decode and interleave the first packet */ if (!esc->samples && avpkt) { - uint8_t *deinterleaved_samples; + uint8_t *deinterleaved_samples, *p = NULL; esc->samples_size = avctx->codec->id == CODEC_ID_8SVX_RAW || avctx->codec->id ==CODEC_ID_PCM_S8_PLANAR? avpkt->size : avctx->channels + (avpkt->size-avctx->channels) * 2; @@ -129,6 +129,7 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data, } if (!(deinterleaved_samples = av_mallocz(n))) return AVERROR(ENOMEM); + p = deinterleaved_samples; /* the uncompressed starting value is contained in the first byte */ if (avctx->channels == 2) { @@ -145,6 +146,7 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data, interleave_stereo(esc->samples, deinterleaved_samples, esc->samples_size); else memcpy(esc->samples, deinterleaved_samples, esc->samples_size); + av_freep(&p); } /* get output buffer */ -- cgit v1.2.3