diff mbox

[FFmpeg-devel] yuv4mpegdec: fix leaking pkt in yuv4_read_packet

Message ID 0ad86466-7eb0-279a-3181-cca6acef1866@googlemail.com
State Accepted
Commit e3694478a98bc2cd702b3b3f0bfb19a100da737e
Headers show

Commit Message

Andreas Cadhalpun Dec. 5, 2016, 10:08 p.m. UTC
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
---
 libavformat/yuv4mpegdec.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Michael Niedermayer Dec. 7, 2016, 2:18 a.m. UTC | #1
On Mon, Dec 05, 2016 at 11:08:44PM +0100, Andreas Cadhalpun wrote:
> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
> ---
>  libavformat/yuv4mpegdec.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/libavformat/yuv4mpegdec.c b/libavformat/yuv4mpegdec.c
> index a91645f..462b823 100644
> --- a/libavformat/yuv4mpegdec.c
> +++ b/libavformat/yuv4mpegdec.c
> @@ -295,9 +295,10 @@ static int yuv4_read_packet(AVFormatContext *s, AVPacket *pkt)
>      ret = av_get_packet(s->pb, pkt, s->packet_size - Y4M_FRAME_MAGIC_LEN);
>      if (ret < 0)
>          return ret;
> -    else if (ret != s->packet_size - Y4M_FRAME_MAGIC_LEN)
> +    else if (ret != s->packet_size - Y4M_FRAME_MAGIC_LEN) {
> +        av_packet_unref(pkt);
>          return s->pb->eof_reached ? AVERROR_EOF : AVERROR(EIO);
> -
> +    }

LGTM

thx

[...]
Andreas Cadhalpun Dec. 7, 2016, 11:28 p.m. UTC | #2
On 07.12.2016 03:18, Michael Niedermayer wrote:
> On Mon, Dec 05, 2016 at 11:08:44PM +0100, Andreas Cadhalpun wrote:
>> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
>> ---
>>  libavformat/yuv4mpegdec.c | 5 +++--
>>  1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/libavformat/yuv4mpegdec.c b/libavformat/yuv4mpegdec.c
>> index a91645f..462b823 100644
>> --- a/libavformat/yuv4mpegdec.c
>> +++ b/libavformat/yuv4mpegdec.c
>> @@ -295,9 +295,10 @@ static int yuv4_read_packet(AVFormatContext *s, AVPacket *pkt)
>>      ret = av_get_packet(s->pb, pkt, s->packet_size - Y4M_FRAME_MAGIC_LEN);
>>      if (ret < 0)
>>          return ret;
>> -    else if (ret != s->packet_size - Y4M_FRAME_MAGIC_LEN)
>> +    else if (ret != s->packet_size - Y4M_FRAME_MAGIC_LEN) {
>> +        av_packet_unref(pkt);
>>          return s->pb->eof_reached ? AVERROR_EOF : AVERROR(EIO);
>> -
>> +    }
> 
> LGTM

Pushed.

Best regards,
Andreas
diff mbox

Patch

diff --git a/libavformat/yuv4mpegdec.c b/libavformat/yuv4mpegdec.c
index a91645f..462b823 100644
--- a/libavformat/yuv4mpegdec.c
+++ b/libavformat/yuv4mpegdec.c
@@ -295,9 +295,10 @@  static int yuv4_read_packet(AVFormatContext *s, AVPacket *pkt)
     ret = av_get_packet(s->pb, pkt, s->packet_size - Y4M_FRAME_MAGIC_LEN);
     if (ret < 0)
         return ret;
-    else if (ret != s->packet_size - Y4M_FRAME_MAGIC_LEN)
+    else if (ret != s->packet_size - Y4M_FRAME_MAGIC_LEN) {
+        av_packet_unref(pkt);
         return s->pb->eof_reached ? AVERROR_EOF : AVERROR(EIO);
-
+    }
     pkt->stream_index = 0;
     pkt->pts = (off - s->internal->data_offset) / s->packet_size;
     pkt->duration = 1;