On Mon, 6 May 2013, Janne Grunau wrote:

Fixes memory leak in fate-redcode-demux.
---
libavcodec/jpeg2000dec.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
index d29789f..97e706a 100644
--- a/libavcodec/jpeg2000dec.c
+++ b/libavcodec/jpeg2000dec.c
@@ -1285,26 +1285,27 @@ static int jpeg2000_decode_frame(AVCodecContext *avctx, 
void *data,
        return -1;
    }
    if (ret = jpeg2000_read_main_headers(s))
-        return ret;
+        goto end;

    /* get picture buffer */
    if ((ret = ff_thread_get_buffer(avctx, &frame, 0)) < 0) {
        av_log(avctx, AV_LOG_ERROR, "ff_thread_get_buffer() failed.\n");
-        return ret;
+        goto end;
    }
    picture->pict_type = AV_PICTURE_TYPE_I;
    picture->key_frame = 1;

    if (ret = jpeg2000_read_bitstream_packets(s))
-        return ret;
+        goto end;
    for (tileno = 0; tileno < s->numXtiles * s->numYtiles; tileno++)
        if (ret = jpeg2000_decode_tile(s, s->tile + tileno, picture))
-            return ret;
-    jpeg2000_dec_cleanup(s);
+            goto end;

    *got_frame = 1;

-    return s->buf - s->buf_start;
+end:
+    jpeg2000_dec_cleanup(s);
+    return ret ? ret : s->buf - s->buf_start;
}

#define OFFSET(x) offsetof(Jpeg2000DecoderContext, x)
--
1.8.2.1

Looks sensible to me

// Martin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to