From 4dfbc7a7559ccab666a8fd39de4224eb4b02c768 Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Sun, 1 Nov 2015 04:07:43 +0100 Subject: msnwc_tcp: Correctly report failure And prevent a memory leak CC: libav-stable@libav.org Signed-off-by: Luca Barbato --- libavformat/msnwc_tcp.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'libavformat/msnwc_tcp.c') diff --git a/libavformat/msnwc_tcp.c b/libavformat/msnwc_tcp.c index b6d30feb9d..afdcac4205 100644 --- a/libavformat/msnwc_tcp.c +++ b/libavformat/msnwc_tcp.c @@ -104,6 +104,7 @@ static int msnwc_tcp_read_packet(AVFormatContext *ctx, AVPacket *pkt) AVIOContext *pb = ctx->pb; uint16_t keyframe; uint32_t size, timestamp; + int ret; avio_skip(pb, 1); /* one byte has been read ahead */ avio_skip(pb, 2); @@ -114,8 +115,11 @@ static int msnwc_tcp_read_packet(AVFormatContext *ctx, AVPacket *pkt) avio_skip(pb, 4); timestamp = avio_rl32(pb); - if(!size || av_get_packet(pb, pkt, size) != size) - return -1; + if (!size) + return AVERROR_INVALIDDATA; + + if ((ret = av_get_packet(pb, pkt, size)) < 0) + return ret; avio_skip(pb, 1); /* Read ahead one byte of struct size like read_header */ -- cgit v1.2.3