From b64fe493717cb2f05a019d9f13778382a78d9d0a Mon Sep 17 00:00:00 2001 From: Hendrik Leppkes Date: Sun, 1 Nov 2015 09:47:34 +0100 Subject: [PATCH] avformat: always unref the packet after parsing This fixes a memory leak when side-data is present. --- libavformat/utils.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 7e4f54f843..3f82659398 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -1285,12 +1285,11 @@ static int parse_packet(AVFormatContext *s, AVPacket *pkt, int stream_index) compute_pkt_fields(s, st, st->parser, &out_pkt, next_dts, next_pts); - if ((ret = add_to_pktbuf(&s->internal->parse_queue, &out_pkt, - &s->internal->parse_queue_end, - 1))) { - av_packet_unref(&out_pkt); + ret = add_to_pktbuf(&s->internal->parse_queue, &out_pkt, + &s->internal->parse_queue_end, 1); + av_packet_unref(&out_pkt); + if (ret < 0) goto fail; - } } /* end of the stream => close and free the parser */