From patchwork Tue Jan 7 13:55:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17233 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 5626244AC83 for ; Tue, 7 Jan 2020 15:56:05 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3836768AB67; Tue, 7 Jan 2020 15:56:05 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BDB9968819B for ; Tue, 7 Jan 2020 15:55:58 +0200 (EET) Received: by mail-wr1-f65.google.com with SMTP id z7so53952605wrl.13 for ; Tue, 07 Jan 2020 05:55:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=0nHhAMii6E/WCn9dsrHMAgh8yDRm37cRLNgLnCYiN4w=; b=LujiaFGlJkDZL0oWu2K2q1+kh6aCcRpJkMIIzrb+zar4N7lDG1VAXR9HQx3wm/gR2+ y+Gjmc7NQiLLOCvr192hZTXNyg91VYevgm8Bkq1Mx4nEfiTLLaSUEJ5YVX/HapH2dYMs /vq8OwAQjBrWgY6H5gm1HNU4tBv+xdnm2YKKNeaoLmW4iuOkLW+eUnWwzaQBGuq+53js c5nsB/A/uEoE+kq2YspIu6+pE+DMtY/e6ZTzidDBqKN/EyGrRo/KXjBC1L+vEUxTmGXY d8AbhB2SWQt5xhla09usEep0yCr9nK3qKvZsTATNMoEUYMJzWkzzm0ZhDGp5fTdGc4ax NjYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=0nHhAMii6E/WCn9dsrHMAgh8yDRm37cRLNgLnCYiN4w=; b=ookGed8VTeY5VeX3DfhIMPz+a5+Fffpcqv0vuKrtU7/DqLZ281HNMM2zjcwvFg0kqf 50sr7gbS1fDKeIkDHILpOX93VF0Y6YAVGMMApP7ImX+jwCCOga0ixGpyF8TCCEJM4n0S RQt1eJ+9ufEo+yV+loOuLRJevl0s0lTw38WOUqnsUog/QGefw5K0/c8RE0HxSzGDys10 lqTEy2gdD3VmXt52PmADUUYSgXsb2MpMNNtyZOSqbdmcOmU8yy9Er9c2e79wnvvdQHpA 9efFjDtgffSu1CusCVD53I+fArWXPJHvvJfydke9FtaZaXovbQ+1CWnBAe1vNzrmOEHD mm3A== X-Gm-Message-State: APjAAAXHPjVoqSZIBJ9TK8VGXqg6kXDS+iT3aAtc+HK/349rPANZrg+X R9leBlu4WR8MIOdp+imXXKNCJ2/2 X-Google-Smtp-Source: APXvYqyVh+Ba+QcPpYKTzKIYxkl9Ipd+NTDhJXMedmKab14Z+G6fahOorXeGiViZHVKVgVkxoycHRg== X-Received: by 2002:a5d:608a:: with SMTP id w10mr102791342wrt.136.1578405358099; Tue, 07 Jan 2020 05:55:58 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id e18sm76167730wrr.95.2020.01.07.05.55.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jan 2020 05:55:57 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 7 Jan 2020 14:55:39 +0100 Message-Id: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 01/11] avformat/avformat: Update AVInputFormat.read_packet documentation X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Since bae8844e351, the packet is automatically unreferenced in ff_read_packet() when an error is returned; but the documentation of this of AVInputFormat.read_packet has not been updated accordingly. Signed-off-by: Andreas Rheinhardt --- libavformat/avformat.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/avformat.h b/libavformat/avformat.h index d4d9a3b06e..9b9b634ec3 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -715,8 +715,7 @@ typedef struct AVInputFormat { * AVFMTCTX_NOHEADER is used and only in the calling thread (not in a * background thread). * @return 0 on success, < 0 on error. - * When returning an error, pkt must not have been allocated - * or must be freed before returning + * Upon returning an error, pkt must be unreferenced by the caller. */ int (*read_packet)(struct AVFormatContext *, AVPacket *pkt); From patchwork Tue Jan 7 13:55:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17235 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id DAD4C44AC83 for ; Tue, 7 Jan 2020 15:56:18 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BDFA268AD22; Tue, 7 Jan 2020 15:56:18 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2DCF568AB4A for ; Tue, 7 Jan 2020 15:56:11 +0200 (EET) Received: by mail-wm1-f50.google.com with SMTP id p9so19050314wmc.2 for ; Tue, 07 Jan 2020 05:56:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ODfyDhzVBXotG8zgG2GcMb0+UhfaPDC8syC0S1M9rlE=; b=JkBf1CqWrKDS+M4rdAyXssesqco/9VqHhGtMsyBfCqp7ff7IuxPi6QA1ZdINfpKAHK Dg7cCMI5SyngMTjrvYh5dQ3Q9eai/IptT7SvAR7HOyiwahA9c3X1wvdOO4HkDlxxj1vD ul+seZcEs4inbKD4eFhgSPyYRaVtUK3oagTMPJaPyqeQHAsMqi392PyDHuHPyQlKwyln k9N1kZ2Y2okhxvpefv/6DQv7noY59HoqFTpISZkVoHJ/sb+1DzSpUHw8qKGUDWdQY8P5 H6Gi8OJ0sonaY5kjl9t9LwvmlrDTREsIgdFeulZLqMKEbL3YQQvyEDQzKYRXvTXXTiew /RIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ODfyDhzVBXotG8zgG2GcMb0+UhfaPDC8syC0S1M9rlE=; b=PQxctr20x69xuZ9WzmUjzuUAqJXE6a2tZbrFucgIAmw6Vdq3f5HcBbghyTbalDHPAg XDkW2y9Jlo4ZfM3d1LgpOKGe7M2TH1M2p6jL16PwFME9OrGfdYUGN14D5X5s0VsJkOn7 ZId2d1p7dof3A1PRuPA8L6GJ0cZ/T/46xnoZP+LWwffSy6dHbG/m08winr0UaXnGVOwU G/VXyuqUOnGIJyghikHnG0vnB8PSBd5SOnoVqxltbgWhw+TN99bcMKYpqcnAOqVVZNKb AMd3hxT/gi5XOmVoUBLKP4WY4VOZNw5wlgXsIBuGgEfbl60ZC3PTcydPLDT8RyfEpH6w ccSg== X-Gm-Message-State: APjAAAVoEBQXUCTqSczhJEuPDu4S9A7fXIglm2BjqKjpB032k++mmCKU MLbgEprAK3x6W1DpDC4zv36PMBh2 X-Google-Smtp-Source: APXvYqyTdUjiqoM2onbXeHQ2a6NprWRCiw7eWpUv2+LWAiGo7wXeoY5Nfapgu+7cAPGicuETaZX8Eg== X-Received: by 2002:a1c:a745:: with SMTP id q66mr38571252wme.167.1578405369653; Tue, 07 Jan 2020 05:56:09 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id e18sm76167730wrr.95.2020.01.07.05.56.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jan 2020 05:56:09 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 7 Jan 2020 14:55:40 +0100 Message-Id: <20200107135549.22581-2-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> References: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 02/11] avformat: Remove unnecessary av_packet_unref() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Since bae8844e the packet will always be unreferenced when a demuxer returns an error, so that a lot of calls to av_packet_unref() in lots of demuxers are now redundant and can be removed. Signed-off-by: Andreas Rheinhardt --- libavformat/aacdec.c | 6 ------ libavformat/adp.c | 1 - libavformat/adxdec.c | 2 -- libavformat/amr.c | 1 - libavformat/ape.c | 1 - libavformat/avs.c | 1 - libavformat/brstm.c | 3 +-- libavformat/c93.c | 13 +++---------- libavformat/cdxl.c | 1 - libavformat/concatdec.c | 4 +--- libavformat/dfa.c | 3 --- libavformat/dsicin.c | 1 - libavformat/dss.c | 6 +----- libavformat/dxa.c | 1 - libavformat/electronicarts.c | 3 --- libavformat/fitsdec.c | 2 -- libavformat/flic.c | 3 +-- libavformat/g723_1.c | 1 - libavformat/gdv.c | 1 - libavformat/gsmdec.c | 1 - libavformat/hls.c | 1 - libavformat/icodec.c | 1 - libavformat/idcin.c | 2 -- libavformat/idroqdec.c | 3 +-- libavformat/ilbc.c | 1 - libavformat/img2dec.c | 1 - libavformat/iv8.c | 1 - libavformat/libmodplug.c | 1 - libavformat/lxfdec.c | 1 - libavformat/mov.c | 1 - libavformat/mpc.c | 1 - libavformat/mpegts.c | 1 - libavformat/mpjpegdec.c | 2 -- libavformat/ncdec.c | 1 - libavformat/nuv.c | 1 - libavformat/oggdec.c | 7 ++----- libavformat/redspark.c | 1 - libavformat/rl2.c | 1 - libavformat/rpl.c | 2 -- libavformat/s337m.c | 2 -- libavformat/sapdec.c | 1 - libavformat/sdr2.c | 1 - libavformat/sierravmd.c | 1 - libavformat/siff.c | 1 - libavformat/spdifdec.c | 5 +---- libavformat/swfdec.c | 3 --- libavformat/thp.c | 2 -- libavformat/vivo.c | 14 +++++--------- libavformat/vpk.c | 4 +--- libavformat/vqf.c | 1 - libavformat/wvdec.c | 4 ---- libavformat/yuv4mpegdec.c | 1 - 52 files changed, 17 insertions(+), 108 deletions(-) diff --git a/libavformat/aacdec.c b/libavformat/aacdec.c index 00ca2319ca..ba3f5ccc6d 100644 --- a/libavformat/aacdec.c +++ b/libavformat/aacdec.c @@ -141,7 +141,6 @@ static int handle_id3(AVFormatContext *s, AVPacket *pkt) ret = av_append_packet(s->pb, pkt, ff_id3v2_tag_len(pkt->data) - pkt->size); if (ret < 0) { - av_packet_unref(pkt); return ret; } @@ -174,7 +173,6 @@ retry: return ret; if (ret < ADTS_HEADER_SIZE) { - av_packet_unref(pkt); return AVERROR(EIO); } @@ -185,7 +183,6 @@ retry: av_assert2(append > 0); ret = av_append_packet(s->pb, pkt, append); if (ret != append) { - av_packet_unref(pkt); return AVERROR(EIO); } if (!ff_id3v2_match(pkt->data, ID3v2_DEFAULT_MAGIC)) { @@ -201,13 +198,10 @@ retry: fsize = (AV_RB32(pkt->data + 3) >> 13) & 0x1FFF; if (fsize < ADTS_HEADER_SIZE) { - av_packet_unref(pkt); return AVERROR_INVALIDDATA; } ret = av_append_packet(s->pb, pkt, fsize - pkt->size); - if (ret < 0) - av_packet_unref(pkt); return ret; } diff --git a/libavformat/adp.c b/libavformat/adp.c index 56f302acfd..8668c78fe4 100644 --- a/libavformat/adp.c +++ b/libavformat/adp.c @@ -78,7 +78,6 @@ static int adp_read_packet(AVFormatContext *s, AVPacket *pkt) if (ret != size) { if (ret < 0) { - av_packet_unref(pkt); return ret; } av_shrink_packet(pkt, ret); diff --git a/libavformat/adxdec.c b/libavformat/adxdec.c index f80b4b80f0..ccd5049acd 100644 --- a/libavformat/adxdec.c +++ b/libavformat/adxdec.c @@ -65,11 +65,9 @@ static int adx_read_packet(AVFormatContext *s, AVPacket *pkt) ret = av_get_packet(s->pb, pkt, size); if (ret != size) { - av_packet_unref(pkt); return ret < 0 ? ret : AVERROR(EIO); } if (AV_RB16(pkt->data) & 0x8000) { - av_packet_unref(pkt); return AVERROR_EOF; } pkt->size = size; diff --git a/libavformat/amr.c b/libavformat/amr.c index 42840a50a3..b19ad18e04 100644 --- a/libavformat/amr.c +++ b/libavformat/amr.c @@ -154,7 +154,6 @@ static int amr_read_packet(AVFormatContext *s, AVPacket *pkt) read = avio_read(s->pb, pkt->data + 1, size - 1); if (read != size - 1) { - av_packet_unref(pkt); if (read < 0) return read; return AVERROR(EIO); diff --git a/libavformat/ape.c b/libavformat/ape.c index e31a00dc96..ed6752a415 100644 --- a/libavformat/ape.c +++ b/libavformat/ape.c @@ -419,7 +419,6 @@ static int ape_read_packet(AVFormatContext * s, AVPacket * pkt) AV_WL32(pkt->data + 4, ape->frames[ape->currentframe].skip); ret = avio_read(s->pb, pkt->data + extra_size, ape->frames[ape->currentframe].size); if (ret < 0) { - av_packet_unref(pkt); return ret; } diff --git a/libavformat/avs.c b/libavformat/avs.c index 47fa41017d..3a2d84aa19 100644 --- a/libavformat/avs.c +++ b/libavformat/avs.c @@ -114,7 +114,6 @@ avs_read_video_packet(AVFormatContext * s, AVPacket * pkt, pkt->data[palette_size + 3] = (size >> 8) & 0xFF; ret = avio_read(s->pb, pkt->data + palette_size + 4, size - 4) + 4; if (ret < size) { - av_packet_unref(pkt); return AVERROR(EIO); } diff --git a/libavformat/brstm.c b/libavformat/brstm.c index 1470690731..ca965ed7e1 100644 --- a/libavformat/brstm.c +++ b/libavformat/brstm.c @@ -422,8 +422,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) dst += size; avio_skip(s->pb, skip); if (ret != size) { - av_packet_unref(pkt); - break; + return AVERROR(EIO); } } pkt->duration = samples; diff --git a/libavformat/c93.c b/libavformat/c93.c index 8aa80b5e0b..256b9800ca 100644 --- a/libavformat/c93.c +++ b/libavformat/c93.c @@ -158,22 +158,19 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) ret = avio_read(pb, pkt->data + 1, datasize); if (ret < datasize) { - ret = AVERROR(EIO); - goto fail; + return AVERROR(EIO); } datasize = avio_rl16(pb); /* palette size */ if (datasize) { if (datasize != 768) { av_log(s, AV_LOG_ERROR, "invalid palette size %u\n", datasize); - ret = AVERROR_INVALIDDATA; - goto fail; + return AVERROR_INVALIDDATA; } pkt->data[0] |= C93_HAS_PALETTE; ret = avio_read(pb, pkt->data + pkt->size, datasize); if (ret < datasize) { - ret = AVERROR(EIO); - goto fail; + return AVERROR(EIO); } pkt->size += 768; } @@ -186,10 +183,6 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) pkt->data[0] |= C93_FIRST_FRAME; } return 0; - - fail: - av_packet_unref(pkt); - return ret; } AVInputFormat ff_c93_demuxer = { diff --git a/libavformat/cdxl.c b/libavformat/cdxl.c index 31f7cb823a..5718fc3e21 100644 --- a/libavformat/cdxl.c +++ b/libavformat/cdxl.c @@ -207,7 +207,6 @@ static int cdxl_read_packet(AVFormatContext *s, AVPacket *pkt) memcpy(pkt->data, cdxl->header, CDXL_HEADER_SIZE); ret = avio_read(pb, pkt->data + CDXL_HEADER_SIZE, video_size); if (ret < 0) { - av_packet_unref(pkt); return ret; } av_shrink_packet(pkt, CDXL_HEADER_SIZE + ret); diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c index e826821241..2173911ce4 100644 --- a/libavformat/concatdec.c +++ b/libavformat/concatdec.c @@ -542,7 +542,6 @@ static int filter_packet(AVFormatContext *avf, ConcatStream *cs, AVPacket *pkt) if (ret < 0) { av_log(avf, AV_LOG_ERROR, "h264_mp4toannexb filter " "failed to send input packet\n"); - av_packet_unref(pkt); return ret; } @@ -592,7 +591,6 @@ static int concat_read_packet(AVFormatContext *avf, AVPacket *pkt) if (ret < 0) return ret; if ((ret = match_streams(avf)) < 0) { - av_packet_unref(pkt); return ret; } if (packet_after_outpoint(cat, pkt)) { @@ -608,7 +606,7 @@ static int concat_read_packet(AVFormatContext *avf, AVPacket *pkt) } break; } - if ((ret = filter_packet(avf, cs, pkt))) + if ((ret = filter_packet(avf, cs, pkt)) < 0) return ret; st = cat->avf->streams[pkt->stream_index]; diff --git a/libavformat/dfa.c b/libavformat/dfa.c index d667cd6277..bd4ef2dafe 100644 --- a/libavformat/dfa.c +++ b/libavformat/dfa.c @@ -93,7 +93,6 @@ static int dfa_read_packet(AVFormatContext *s, AVPacket *pkt) if (!first) { ret = av_append_packet(pb, pkt, 12); if (ret < 0) { - av_packet_unref(pkt); return ret; } } else @@ -101,7 +100,6 @@ static int dfa_read_packet(AVFormatContext *s, AVPacket *pkt) frame_size = AV_RL32(pkt->data + pkt->size - 8); if (frame_size > INT_MAX - 4) { av_log(s, AV_LOG_ERROR, "Too large chunk size: %"PRIu32"\n", frame_size); - av_packet_unref(pkt); return AVERROR(EIO); } if (AV_RL32(pkt->data + pkt->size - 12) == MKTAG('E', 'O', 'F', 'R')) { @@ -115,7 +113,6 @@ static int dfa_read_packet(AVFormatContext *s, AVPacket *pkt) } ret = av_append_packet(pb, pkt, frame_size); if (ret < 0) { - av_packet_unref(pkt); return ret; } } diff --git a/libavformat/dsicin.c b/libavformat/dsicin.c index 244622ee39..b18f43b9a0 100644 --- a/libavformat/dsicin.c +++ b/libavformat/dsicin.c @@ -200,7 +200,6 @@ static int cin_read_packet(AVFormatContext *s, AVPacket *pkt) ret = avio_read(pb, &pkt->data[4], pkt_size); if (ret < 0) { - av_packet_unref(pkt); return ret; } if (ret < pkt_size) diff --git a/libavformat/dss.c b/libavformat/dss.c index d7f9cafe47..8e0b72fbe5 100644 --- a/libavformat/dss.c +++ b/libavformat/dss.c @@ -259,14 +259,12 @@ static int dss_sp_read_packet(AVFormatContext *s, AVPacket *pkt) dss_sp_byte_swap(ctx, pkt->data, ctx->dss_sp_buf); if (ctx->dss_sp_swap_byte < 0) { - ret = AVERROR(EAGAIN); - goto error_eof; + return AVERROR(EAGAIN); } return pkt->size; error_eof: - av_packet_unref(pkt); return ret < 0 ? ret : AVERROR_EOF; } @@ -308,7 +306,6 @@ static int dss_723_1_read_packet(AVFormatContext *s, AVPacket *pkt) ret = avio_read(s->pb, pkt->data + offset, size2 - offset); if (ret < size2 - offset) { - av_packet_unref(pkt); return ret < 0 ? ret : AVERROR_EOF; } @@ -318,7 +315,6 @@ static int dss_723_1_read_packet(AVFormatContext *s, AVPacket *pkt) ret = avio_read(s->pb, pkt->data + offset, size - offset); if (ret < size - offset) { - av_packet_unref(pkt); return ret < 0 ? ret : AVERROR_EOF; } diff --git a/libavformat/dxa.c b/libavformat/dxa.c index 994078e633..27fa6afb6a 100644 --- a/libavformat/dxa.c +++ b/libavformat/dxa.c @@ -210,7 +210,6 @@ static int dxa_read_packet(AVFormatContext *s, AVPacket *pkt) memcpy(pkt->data + pal_size, buf, DXA_EXTRA_SIZE); ret = avio_read(s->pb, pkt->data + DXA_EXTRA_SIZE + pal_size, size); if(ret != size){ - av_packet_unref(pkt); return AVERROR(EIO); } if(pal_size) memcpy(pkt->data, pal, pal_size); diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c index c894663c29..2ee5e1b6fa 100644 --- a/libavformat/electronicarts.c +++ b/libavformat/electronicarts.c @@ -633,7 +633,6 @@ static int ea_read_packet(AVFormatContext *s, AVPacket *pkt) case AV_CODEC_ID_ADPCM_EA_R3: if (pkt->size < 4) { av_log(s, AV_LOG_ERROR, "Packet is too short\n"); - av_packet_unref(pkt); return AVERROR_INVALIDDATA; } if (ea->audio_codec == AV_CODEC_ID_ADPCM_EA_R3) @@ -736,8 +735,6 @@ get_video_packet: } } - if (ret < 0 && partial_packet) - av_packet_unref(pkt); if (ret >= 0 && hit_end && !packet_read) return AVERROR(EAGAIN); diff --git a/libavformat/fitsdec.c b/libavformat/fitsdec.c index c7d1edec60..e917fc2375 100644 --- a/libavformat/fitsdec.c +++ b/libavformat/fitsdec.c @@ -183,7 +183,6 @@ static int fits_read_packet(AVFormatContext *s, AVPacket *pkt) ret = av_bprint_finalize(&avbuf, &buf); if (ret < 0) { - av_packet_unref(pkt); return ret; } @@ -192,7 +191,6 @@ static int fits_read_packet(AVFormatContext *s, AVPacket *pkt) av_freep(&buf); ret = avio_read(s->pb, pkt->data + pkt->size, size); if (ret < 0) { - av_packet_unref(pkt); return ret; } diff --git a/libavformat/flic.c b/libavformat/flic.c index 615d6b25c5..da7b732388 100644 --- a/libavformat/flic.c +++ b/libavformat/flic.c @@ -226,7 +226,6 @@ static int flic_read_packet(AVFormatContext *s, ret = avio_read(pb, pkt->data + FLIC_PREAMBLE_SIZE, size - FLIC_PREAMBLE_SIZE); if (ret != size - FLIC_PREAMBLE_SIZE) { - av_packet_unref(pkt); ret = AVERROR(EIO); } packet_read = 1; @@ -244,8 +243,8 @@ static int flic_read_packet(AVFormatContext *s, ret = avio_read(pb, pkt->data, size); if (ret != size) { - av_packet_unref(pkt); ret = AVERROR(EIO); + break; } packet_read = 1; diff --git a/libavformat/g723_1.c b/libavformat/g723_1.c index 27c8c3951b..3af4809347 100644 --- a/libavformat/g723_1.c +++ b/libavformat/g723_1.c @@ -69,7 +69,6 @@ static int g723_1_read_packet(AVFormatContext *s, AVPacket *pkt) ret = avio_read(s->pb, pkt->data + 1, size - 1); if (ret < size - 1) { - av_packet_unref(pkt); return ret < 0 ? ret : AVERROR_EOF; } diff --git a/libavformat/gdv.c b/libavformat/gdv.c index b698497a6a..2ecbb535e7 100644 --- a/libavformat/gdv.c +++ b/libavformat/gdv.c @@ -182,7 +182,6 @@ static int gdv_read_packet(AVFormatContext *ctx, AVPacket *pkt) pal = av_packet_new_side_data(pkt, AV_PKT_DATA_PALETTE, AVPALETTE_SIZE); if (!pal) { - av_packet_unref(pkt); return AVERROR(ENOMEM); } memcpy(pal, gdv->pal, AVPALETTE_SIZE); diff --git a/libavformat/gsmdec.c b/libavformat/gsmdec.c index 1044cde317..ec6b2e924f 100644 --- a/libavformat/gsmdec.c +++ b/libavformat/gsmdec.c @@ -62,7 +62,6 @@ static int gsm_read_packet(AVFormatContext *s, AVPacket *pkt) ret = av_get_packet(s->pb, pkt, size); if (ret < GSM_BLOCK_SIZE) { - av_packet_unref(pkt); return ret < 0 ? ret : AVERROR(EIO); } pkt->duration = 1; diff --git a/libavformat/hls.c b/libavformat/hls.c index 538af0dbf8..5766857303 100644 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@ -2214,7 +2214,6 @@ static int hls_read_packet(AVFormatContext *s, AVPacket *pkt) if (ist->codecpar->codec_id != st->codecpar->codec_id) { ret = set_stream_info_from_input_stream(st, pls, ist); if (ret < 0) { - av_packet_unref(pkt); return ret; } } diff --git a/libavformat/icodec.c b/libavformat/icodec.c index 98684e5e74..b47fa98f80 100644 --- a/libavformat/icodec.c +++ b/libavformat/icodec.c @@ -185,7 +185,6 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) bytestream_put_le32(&buf, 0); if ((ret = avio_read(pb, buf, image->size)) != image->size) { - av_packet_unref(pkt); return ret < 0 ? ret : AVERROR_INVALIDDATA; } diff --git a/libavformat/idcin.c b/libavformat/idcin.c index 0b1058171b..5a6a15aa81 100644 --- a/libavformat/idcin.c +++ b/libavformat/idcin.c @@ -313,7 +313,6 @@ static int idcin_read_packet(AVFormatContext *s, return ret; else if (ret != chunk_size) { av_log(s, AV_LOG_ERROR, "incomplete packet\n"); - av_packet_unref(pkt); return AVERROR(EIO); } if (command == 1) { @@ -322,7 +321,6 @@ static int idcin_read_packet(AVFormatContext *s, pal = av_packet_new_side_data(pkt, AV_PKT_DATA_PALETTE, AVPALETTE_SIZE); if (!pal) { - av_packet_unref(pkt); return AVERROR(ENOMEM); } memcpy(pal, palette, AVPALETTE_SIZE); diff --git a/libavformat/idroqdec.c b/libavformat/idroqdec.c index 1db4cce6f0..56ab83424f 100644 --- a/libavformat/idroqdec.c +++ b/libavformat/idroqdec.c @@ -223,8 +223,7 @@ static int roq_read_packet(AVFormatContext *s, ret = avio_read(pb, pkt->data + RoQ_CHUNK_PREAMBLE_SIZE, chunk_size); if (ret != chunk_size) { - av_packet_unref(pkt); - ret = AVERROR(EIO); + return AVERROR(EIO); } packet_read = 1; diff --git a/libavformat/ilbc.c b/libavformat/ilbc.c index ba11953b59..95a631158d 100644 --- a/libavformat/ilbc.c +++ b/libavformat/ilbc.c @@ -112,7 +112,6 @@ static int ilbc_read_packet(AVFormatContext *s, pkt->pos = avio_tell(s->pb); pkt->duration = par->block_align == 38 ? 160 : 240; if ((ret = avio_read(s->pb, pkt->data, par->block_align)) != par->block_align) { - av_packet_unref(pkt); return ret < 0 ? ret : AVERROR(EIO); } diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c index f8b4a655a5..1739628bac 100644 --- a/libavformat/img2dec.c +++ b/libavformat/img2dec.c @@ -504,7 +504,6 @@ int ff_img_read_packet(AVFormatContext *s1, AVPacket *pkt) } if (ret[0] <= 0 || ret[1] < 0 || ret[2] < 0) { - av_packet_unref(pkt); if (ret[0] < 0) { res = ret[0]; } else if (ret[1] < 0) { diff --git a/libavformat/iv8.c b/libavformat/iv8.c index 449a422347..e25f24eeb9 100644 --- a/libavformat/iv8.c +++ b/libavformat/iv8.c @@ -92,7 +92,6 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) ret = av_append_packet(s->pb, pkt, size); if (ret < 0) { av_log(s, AV_LOG_ERROR, "failed to grow packet\n"); - av_packet_unref(pkt); return ret; } } diff --git a/libavformat/libmodplug.c b/libavformat/libmodplug.c index 6a32618e6f..6e567f5f98 100644 --- a/libavformat/libmodplug.c +++ b/libavformat/libmodplug.c @@ -327,7 +327,6 @@ static int modplug_read_packet(AVFormatContext *s, AVPacket *pkt) pkt->size = ModPlug_Read(modplug->f, pkt->data, AUDIO_PKT_SIZE); if (pkt->size <= 0) { - av_packet_unref(pkt); return pkt->size == 0 ? AVERROR_EOF : AVERROR(EIO); } return 0; diff --git a/libavformat/lxfdec.c b/libavformat/lxfdec.c index 434518fc59..fa84ceea78 100644 --- a/libavformat/lxfdec.c +++ b/libavformat/lxfdec.c @@ -316,7 +316,6 @@ static int lxf_read_packet(AVFormatContext *s, AVPacket *pkt) return ret2; if ((ret2 = avio_read(pb, pkt->data, ret)) != ret) { - av_packet_unref(pkt); return ret2 < 0 ? ret2 : AVERROR_EOF; } diff --git a/libavformat/mov.c b/libavformat/mov.c index 890c6e85b8..3dcd458fd3 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -7882,7 +7882,6 @@ static int mov_read_packet(AVFormatContext *s, AVPacket *pkt) ret = cenc_filter(mov, st, sc, pkt, current_index); if (ret < 0) { - av_packet_unref(pkt); return ret; } diff --git a/libavformat/mpc.c b/libavformat/mpc.c index a7b2e116ed..85036cd118 100644 --- a/libavformat/mpc.c +++ b/libavformat/mpc.c @@ -169,7 +169,6 @@ static int mpc_read_packet(AVFormatContext *s, AVPacket *pkt) if(c->curbits) avio_seek(s->pb, -4, SEEK_CUR); if(ret < size){ - av_packet_unref(pkt); return ret < 0 ? ret : AVERROR(EIO); } pkt->size = ret + 4; diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index 5c850bc1e5..a90900127c 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -3133,7 +3133,6 @@ static int mpegts_raw_read_packet(AVFormatContext *s, AVPacket *pkt) ret = read_packet(s, pkt->data, ts->raw_packet_size, &data); pkt->pos = avio_tell(s->pb); if (ret < 0) { - av_packet_unref(pkt); return ret; } if (data != pkt->data) diff --git a/libavformat/mpjpegdec.c b/libavformat/mpjpegdec.c index c79a39c69d..1e2ab0db1a 100644 --- a/libavformat/mpjpegdec.c +++ b/libavformat/mpjpegdec.c @@ -359,8 +359,6 @@ static int mpjpeg_read_packet(AVFormatContext *s, AVPacket *pkt) /* error or EOF occurred */ if (ret == AVERROR_EOF) { ret = pkt->size > 0 ? pkt->size : AVERROR_EOF; - } else { - av_packet_unref(pkt); } } diff --git a/libavformat/ncdec.c b/libavformat/ncdec.c index bc3d3e82bf..f2066b485a 100644 --- a/libavformat/ncdec.c +++ b/libavformat/ncdec.c @@ -83,7 +83,6 @@ static int nc_read_packet(AVFormatContext *s, AVPacket *pkt) ret = av_get_packet(s->pb, pkt, size); if (ret != size) { - if (ret > 0) av_packet_unref(pkt); return AVERROR(EIO); } diff --git a/libavformat/nuv.c b/libavformat/nuv.c index bef0ae4860..d99770d41d 100644 --- a/libavformat/nuv.c +++ b/libavformat/nuv.c @@ -284,7 +284,6 @@ static int nuv_packet(AVFormatContext *s, AVPacket *pkt) memcpy(pkt->data, hdr, copyhdrsize); ret = avio_read(pb, pkt->data + copyhdrsize, size); if (ret < 0) { - av_packet_unref(pkt); return ret; } if (ret < size) diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c index e815f42134..4f4b5fe386 100644 --- a/libavformat/oggdec.c +++ b/libavformat/oggdec.c @@ -851,7 +851,7 @@ retry: AV_PKT_DATA_SKIP_SAMPLES, 10); if(!side_data) - goto fail; + return AVERROR(ENOMEM); AV_WL32(side_data + 4, os->end_trimming); os->end_trimming = 0; } @@ -861,7 +861,7 @@ retry: AV_PKT_DATA_METADATA_UPDATE, os->new_metadata_size); if(!side_data) - goto fail; + return AVERROR(ENOMEM); memcpy(side_data, os->new_metadata, os->new_metadata_size); av_freep(&os->new_metadata); @@ -869,9 +869,6 @@ retry: } return psize; -fail: - av_packet_unref(pkt); - return AVERROR(ENOMEM); } static int64_t ogg_read_timestamp(AVFormatContext *s, int stream_index, diff --git a/libavformat/redspark.c b/libavformat/redspark.c index f1f2b3156d..0ce8915311 100644 --- a/libavformat/redspark.c +++ b/libavformat/redspark.c @@ -140,7 +140,6 @@ static int redspark_read_packet(AVFormatContext *s, AVPacket *pkt) ret = av_get_packet(s->pb, pkt, size); if (ret != size) { - av_packet_unref(pkt); return AVERROR(EIO); } diff --git a/libavformat/rl2.c b/libavformat/rl2.c index 9e10155838..cfde23a945 100644 --- a/libavformat/rl2.c +++ b/libavformat/rl2.c @@ -256,7 +256,6 @@ static int rl2_read_packet(AVFormatContext *s, /** fill the packet */ ret = av_get_packet(pb, pkt, sample->size); if(ret != sample->size){ - av_packet_unref(pkt); return AVERROR(EIO); } diff --git a/libavformat/rpl.c b/libavformat/rpl.c index 6afd373810..208c50f00c 100644 --- a/libavformat/rpl.c +++ b/libavformat/rpl.c @@ -338,7 +338,6 @@ static int rpl_read_packet(AVFormatContext *s, AVPacket *pkt) if (ret < 0) return ret; if (ret != frame_size) { - av_packet_unref(pkt); return AVERROR(EIO); } pkt->duration = 1; @@ -355,7 +354,6 @@ static int rpl_read_packet(AVFormatContext *s, AVPacket *pkt) if (ret < 0) return ret; if (ret != index_entry->size) { - av_packet_unref(pkt); return AVERROR(EIO); } diff --git a/libavformat/s337m.c b/libavformat/s337m.c index 48ab66a6da..d7d9b4ce88 100644 --- a/libavformat/s337m.c +++ b/libavformat/s337m.c @@ -174,7 +174,6 @@ static int s337m_read_packet(AVFormatContext *s, AVPacket *pkt) pkt->pos = pos; if (avio_read(pb, pkt->data, pkt->size) < pkt->size) { - av_packet_unref(pkt); return AVERROR_EOF; } @@ -186,7 +185,6 @@ static int s337m_read_packet(AVFormatContext *s, AVPacket *pkt) if (!s->nb_streams) { AVStream *st = avformat_new_stream(s, NULL); if (!st) { - av_packet_unref(pkt); return AVERROR(ENOMEM); } st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; diff --git a/libavformat/sapdec.c b/libavformat/sapdec.c index f8bc0d281c..b3644b436b 100644 --- a/libavformat/sapdec.c +++ b/libavformat/sapdec.c @@ -225,7 +225,6 @@ static int sap_fetch_packet(AVFormatContext *s, AVPacket *pkt) int i = s->nb_streams; AVStream *st = avformat_new_stream(s, NULL); if (!st) { - av_packet_unref(pkt); return AVERROR(ENOMEM); } st->id = i; diff --git a/libavformat/sdr2.c b/libavformat/sdr2.c index 8893f260d2..3743d59e58 100644 --- a/libavformat/sdr2.c +++ b/libavformat/sdr2.c @@ -95,7 +95,6 @@ static int sdr2_read_packet(AVFormatContext *s, AVPacket *pkt) memcpy(pkt->data, header, 24); ret = avio_read(s->pb, pkt->data + 24, next - 52); if (ret < 0) { - av_packet_unref(pkt); return ret; } av_shrink_packet(pkt, ret + 24); diff --git a/libavformat/sierravmd.c b/libavformat/sierravmd.c index 8c2322eda6..531fc41531 100644 --- a/libavformat/sierravmd.c +++ b/libavformat/sierravmd.c @@ -295,7 +295,6 @@ static int vmd_read_packet(AVFormatContext *s, frame->frame_size); if (ret != frame->frame_size) { - av_packet_unref(pkt); ret = AVERROR(EIO); } pkt->stream_index = frame->stream_index; diff --git a/libavformat/siff.c b/libavformat/siff.c index 56c5b33c76..f6815b2f26 100644 --- a/libavformat/siff.c +++ b/libavformat/siff.c @@ -220,7 +220,6 @@ static int siff_read_packet(AVFormatContext *s, AVPacket *pkt) if (c->gmcsize) memcpy(pkt->data + 2, c->gmc, c->gmcsize); if (avio_read(s->pb, pkt->data + 2 + c->gmcsize, size) != size) { - av_packet_unref(pkt); return AVERROR_INVALIDDATA; } pkt->stream_index = 0; diff --git a/libavformat/spdifdec.c b/libavformat/spdifdec.c index d74f58d82b..1808fa9d65 100644 --- a/libavformat/spdifdec.c +++ b/libavformat/spdifdec.c @@ -197,15 +197,13 @@ int ff_spdif_read_packet(AVFormatContext *s, AVPacket *pkt) pkt->pos = avio_tell(pb) - BURST_HEADER_SIZE; if (avio_read(pb, pkt->data, pkt->size) < pkt->size) { - av_packet_unref(pkt); return AVERROR_EOF; } ff_spdif_bswap_buf16((uint16_t *)pkt->data, (uint16_t *)pkt->data, pkt->size >> 1); ret = spdif_get_offset_and_codec(s, data_type, pkt->data, &offset, &codec_id); - if (ret) { - av_packet_unref(pkt); + if (ret < 0) { return ret; } @@ -216,7 +214,6 @@ int ff_spdif_read_packet(AVFormatContext *s, AVPacket *pkt) /* first packet, create a stream */ AVStream *st = avformat_new_stream(s, NULL); if (!st) { - av_packet_unref(pkt); return AVERROR(ENOMEM); } st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; diff --git a/libavformat/swfdec.c b/libavformat/swfdec.c index a9358f09a9..9a0b27bd8c 100644 --- a/libavformat/swfdec.c +++ b/libavformat/swfdec.c @@ -399,7 +399,6 @@ static int swf_read_packet(AVFormatContext *s, AVPacket *pkt) if (linesize * height > pkt->size) { res = AVERROR_INVALIDDATA; - av_packet_unref(pkt); goto bitmap_end; } @@ -489,7 +488,6 @@ bitmap_end_skip: if ((res = av_new_packet(pkt, len)) < 0) return res; if (avio_read(pb, pkt->data, 4) != 4) { - av_packet_unref(pkt); return AVERROR_INVALIDDATA; } if (AV_RB32(pkt->data) == 0xffd8ffd9 || @@ -506,7 +504,6 @@ bitmap_end_skip: } if (res != pkt->size) { if (res < 0) { - av_packet_unref(pkt); return res; } av_shrink_packet(pkt, res); diff --git a/libavformat/thp.c b/libavformat/thp.c index ee5c78b6d3..332ed79128 100644 --- a/libavformat/thp.c +++ b/libavformat/thp.c @@ -181,7 +181,6 @@ static int thp_read_packet(AVFormatContext *s, if (ret < 0) return ret; if (ret != size) { - av_packet_unref(pkt); return AVERROR(EIO); } @@ -191,7 +190,6 @@ static int thp_read_packet(AVFormatContext *s, if (ret < 0) return ret; if (ret != thp->audiosize) { - av_packet_unref(pkt); return AVERROR(EIO); } diff --git a/libavformat/vivo.c b/libavformat/vivo.c index 9a07c43849..4039cd0fe5 100644 --- a/libavformat/vivo.c +++ b/libavformat/vivo.c @@ -273,32 +273,28 @@ restart: } if ((ret = av_get_packet(pb, pkt, vivo->length)) < 0) - goto fail; + return ret; // get next packet header if ((ret = vivo_get_packet_header(s)) < 0) - goto fail; + return ret; while (vivo->sequence == old_sequence && (((vivo->type - 1) >> 1) == ((old_type - 1) >> 1))) { if (avio_feof(pb)) { - ret = AVERROR_EOF; - break; + return AVERROR_EOF; } if ((ret = av_append_packet(pb, pkt, vivo->length)) < 0) - break; + return ret; // get next packet header if ((ret = vivo_get_packet_header(s)) < 0) - break; + return ret; } pkt->stream_index = stream_index; -fail: - if (ret < 0) - av_packet_unref(pkt); return ret; } diff --git a/libavformat/vpk.c b/libavformat/vpk.c index 255d6030b0..dd9aeb6101 100644 --- a/libavformat/vpk.c +++ b/libavformat/vpk.c @@ -93,9 +93,7 @@ static int vpk_read_packet(AVFormatContext *s, AVPacket *pkt) ret = avio_read(s->pb, pkt->data + i * size, size); avio_skip(s->pb, skip); if (ret != size) { - av_packet_unref(pkt); - ret = AVERROR(EIO); - break; + return AVERROR(EIO); } } pkt->stream_index = 0; diff --git a/libavformat/vqf.c b/libavformat/vqf.c index b43725b3c1..15660e9fd8 100644 --- a/libavformat/vqf.c +++ b/libavformat/vqf.c @@ -249,7 +249,6 @@ static int vqf_read_packet(AVFormatContext *s, AVPacket *pkt) ret = avio_read(s->pb, pkt->data+2, size); if (ret != size) { - av_packet_unref(pkt); return AVERROR(EIO); } diff --git a/libavformat/wvdec.c b/libavformat/wvdec.c index f2bb4c60ba..0aa581534d 100644 --- a/libavformat/wvdec.c +++ b/libavformat/wvdec.c @@ -287,25 +287,21 @@ static int wv_read_packet(AVFormatContext *s, AVPacket *pkt) memcpy(pkt->data, wc->block_header, WV_HEADER_SIZE); ret = avio_read(s->pb, pkt->data + WV_HEADER_SIZE, wc->header.blocksize); if (ret != wc->header.blocksize) { - av_packet_unref(pkt); return AVERROR(EIO); } while (!(wc->header.flags & WV_FLAG_FINAL_BLOCK)) { if ((ret = wv_read_block_header(s, s->pb)) < 0) { - av_packet_unref(pkt); return ret; } off = pkt->size; if ((ret = av_grow_packet(pkt, WV_HEADER_SIZE + wc->header.blocksize)) < 0) { - av_packet_unref(pkt); return ret; } memcpy(pkt->data + off, wc->block_header, WV_HEADER_SIZE); ret = avio_read(s->pb, pkt->data + off + WV_HEADER_SIZE, wc->header.blocksize); if (ret != wc->header.blocksize) { - av_packet_unref(pkt); return (ret < 0) ? ret : AVERROR_EOF; } } diff --git a/libavformat/yuv4mpegdec.c b/libavformat/yuv4mpegdec.c index eceb945bb1..b8e2980a3d 100644 --- a/libavformat/yuv4mpegdec.c +++ b/libavformat/yuv4mpegdec.c @@ -310,7 +310,6 @@ static int yuv4_read_packet(AVFormatContext *s, AVPacket *pkt) if (ret < 0) return ret; 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; From patchwork Tue Jan 7 13:55:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17234 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id C9B5144AC83 for ; Tue, 7 Jan 2020 15:56:17 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B005E68ACD5; Tue, 7 Jan 2020 15:56:17 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F3E1568A55C for ; Tue, 7 Jan 2020 15:56:10 +0200 (EET) Received: by mail-wm1-f68.google.com with SMTP id d139so14274951wmd.0 for ; Tue, 07 Jan 2020 05:56:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MbXccic87EkPe79H1m457Dus+qTEQpWWx9RNHIcqs0s=; b=RAGq5IugK3f86vnoXYUMB46O/KvyeimP7ONqP2lqd7lBck/74b6LG5HIHp4Az+v09P lGAJSZlZW4ya5GDeHB2k8opDbdEuGKf8cY4wFmYn5I0zr9Q83ri7vmCVR2znfBn1M4FM ih1jJsFu95uLOasSK/vclpBEpNBjmBiZLtrPE4Vf2oPGaE6tohzm9RnkdeiD3ftJMsGo 4amprSkQVAyQx0WEgdfJV8IXJINMCbm5JyGyzn9XO7txqM1DU5pXq/WHBkuN+99dOiYj s6VxDqahEvm3ZhHzYRp1HSqI45xf/L2YhmkCWxXzNOL340pJJuUmiY+HBAoMPWXV06qX 5N2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=MbXccic87EkPe79H1m457Dus+qTEQpWWx9RNHIcqs0s=; b=GvRWy7skZt0UrfTHZkRKVlbarqpAqZmKqCN14LQbqPzmZF/ml+fHSDk2voup/QgjvP 1tyN2va4BpvFfAB1TrX5h/7hjEk/Z/B3i2/c1lbusNwWnqbVSsYkmCtNa0vcFhiJAWP2 LNf7bV+n6uhtX0rnYZY/LfzOZk3E6wyzOFtSufzNgiWWJaicDASLA9jxX/UQby3VQFbK 3Gsy2GQDJ4koHYuF7yNMj62lroOXrglAUsOjEtxJmwlmRLD8l8/vQGIsB3kRcNz67opc xsElbJA+DTkTgOOnvzm8En5lksSj4DmRbtPGuTB76jI9gczmECErc6xb0zM8nS7P4F2o H6QQ== X-Gm-Message-State: APjAAAXRuVvV4pBZxye9a9xwugmMBdy6NTF9Nm2Xg7MuaHwcjoo+2Y8S AekjsRC3cbWdjzdipzp/n46Zso4A X-Google-Smtp-Source: APXvYqzuZzDZQ1ARcMXapWOm4kQCyZsplBwuEUrK8P3LkqiI54E/sJShKMGbmACJdjBdUS5O5FxMeA== X-Received: by 2002:a05:600c:118a:: with SMTP id i10mr38979563wmf.142.1578405370397; Tue, 07 Jan 2020 05:56:10 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id e18sm76167730wrr.95.2020.01.07.05.56.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jan 2020 05:56:09 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 7 Jan 2020 14:55:41 +0100 Message-Id: <20200107135549.22581-3-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> References: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 03/11] avformat/avs: Remove avs_read_close() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" It did nothing. Signed-off-by: Andreas Rheinhardt --- libavformat/avs.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/libavformat/avs.c b/libavformat/avs.c index 3a2d84aa19..54b2c3f2a9 100644 --- a/libavformat/avs.c +++ b/libavformat/avs.c @@ -223,11 +223,6 @@ static int avs_read_packet(AVFormatContext * s, AVPacket * pkt) } } -static int avs_read_close(AVFormatContext * s) -{ - return 0; -} - AVInputFormat ff_avs_demuxer = { .name = "avs", .long_name = NULL_IF_CONFIG_SMALL("Argonaut Games Creature Shock"), @@ -235,5 +230,4 @@ AVInputFormat ff_avs_demuxer = { .read_probe = avs_probe, .read_header = avs_read_header, .read_packet = avs_read_packet, - .read_close = avs_read_close, }; From patchwork Tue Jan 7 13:55:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17236 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id B8DB144AC83 for ; Tue, 7 Jan 2020 15:56:19 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9B6D268AD28; Tue, 7 Jan 2020 15:56:19 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 08F7968AAFD for ; Tue, 7 Jan 2020 15:56:12 +0200 (EET) Received: by mail-wm1-f67.google.com with SMTP id u2so19487323wmc.3 for ; Tue, 07 Jan 2020 05:56:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=V/ENE5B0RtkPEdGIQdG6p+G8/ZllUZ0z8SrpizNjYYg=; b=jqD3b7g21NytTYln1MOp3klj7tt7O4ga8ezYldyBbVzy/kv7+eB9R5TP6o+bLVdQ3A ar7R/eElfl1RN3uryYRZ3fimjwMkVDcMGrNf2xQArqB4IWdamKeUj3bZ2Wb4PCF4pmr8 sTzgrhKFhoE1GS20SYTyVi7WOHA9TJCdfIi3KaZ92jN6VBrAOCqtrfmTGyMHVH8gA5V8 wysS3PoBVgw1TL7Y/hj3s+azHqC8Ss9MKZQZMSF/emNgR24d8yPqidTA+zp9/6q8widc sIKS/Jnnuq616XObKrRDMkMywj5iT4jO7qmNIzlENXeC+t2DHNNDwqY7NhzPmjmoAOim 21TQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=V/ENE5B0RtkPEdGIQdG6p+G8/ZllUZ0z8SrpizNjYYg=; b=qsgjHM+k1bivOqJXdBCwZS5V/m3WzIOgDSSW80TGNpoCzuJvXjjEgbKL2P3Z6x8zUe Rg5hU4XRS96MEEVs3dTB8Q7OqHjLNi3823/qyNn7LYnc7BCt8Sk+ambs3SazwNgen3eS CgrlCY8l00v+tTkMsOrLUbww+QTcNo7+erPKf+YSaHWtPYqHP/IP6RDB9IvQmCMzNlPF YV2Zz5Nn93UhYofquiu0szWQKGXpnJuQKl+0Qb/akSWndCU+GG4v+X7vHfPgHJMpo+PH hTfmNtq4FvjgU0s/4tV6ZQzHVtXWfWPZa9iWH5GtelUS96amLDNNHlb1FjxE1NcvQMQA T5mg== X-Gm-Message-State: APjAAAXBeuakGf1ZsFIrLNCqMzB6OSMzoxpQOuUaYeZtO1deS58kykEQ dsNYUIJmVoh0Qzs1f7Daf8C3xbEG X-Google-Smtp-Source: APXvYqzvLBdr383SbHuxkIxi2DEu/XNdV7P0jsSGdkz2Z1VveZ4y2Kelg7gwgSR5I0INZbXSQvuhbA== X-Received: by 2002:a05:600c:2150:: with SMTP id v16mr37438742wml.156.1578405371442; Tue, 07 Jan 2020 05:56:11 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id e18sm76167730wrr.95.2020.01.07.05.56.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jan 2020 05:56:10 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 7 Jan 2020 14:55:42 +0100 Message-Id: <20200107135549.22581-4-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> References: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 04/11] avformat/fitsdec: Fix potential leak of string in AVBPrint X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" by freeing it a bit earlier. Signed-off-by: Andreas Rheinhardt --- libavformat/fitsdec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/fitsdec.c b/libavformat/fitsdec.c index e917fc2375..e52ddc7e79 100644 --- a/libavformat/fitsdec.c +++ b/libavformat/fitsdec.c @@ -157,11 +157,11 @@ static int fits_read_packet(AVFormatContext *s, AVPacket *pkt) av_bprint_init(&avbuf, FITS_BLOCK_SIZE, AV_BPRINT_SIZE_UNLIMITED); while ((ret = is_image(s, fits, &header, &avbuf, &size)) == 0) { + av_bprint_finalize(&avbuf, NULL); pos = avio_skip(s->pb, size); if (pos < 0) return pos; - av_bprint_finalize(&avbuf, NULL); av_bprint_init(&avbuf, FITS_BLOCK_SIZE, AV_BPRINT_SIZE_UNLIMITED); avpriv_fits_header_init(&header, STATE_XTENSION); } From patchwork Tue Jan 7 13:55:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17238 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 0785744AC83 for ; Tue, 7 Jan 2020 15:56:22 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DE59968AD3D; Tue, 7 Jan 2020 15:56:21 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CFC8E68ACEF for ; Tue, 7 Jan 2020 15:56:12 +0200 (EET) Received: by mail-wr1-f65.google.com with SMTP id t2so54034086wrr.1 for ; Tue, 07 Jan 2020 05:56:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ROToNw8auoDYXWOxlQHAjkjB6EcpmvhdFxIV1Ep00SY=; b=lp/kB/HjmkIEOyycxjrGRNLJJuZ3UeldPr+wtIIQtY91P28e7H5KyLoGhrfxV83AQ0 zruHXATF5F4BIXBGcNYnja8izS5OBsOISKr4ZTiOx3lIJj17ldtFz3kyfefqCXgtOQyZ 5wtJueCDP+EtxSLN61QefS+50pqPAT/RLdZbrCdAMyFNckyhJcxKBChfl6fQn5t2dNGO xN+S3XXjIjo1cq62nowETY4yZ8lIp1C/RSobBNUdypdyg2Ry6iiNFUof9G12/AefknaY 2Z7YQ17TvZRNTLMP8tVAjPkqnxfS0jFJNKeQwCNNIapZWFTKCssbAYTcZEVjBH2XZOIF CyCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ROToNw8auoDYXWOxlQHAjkjB6EcpmvhdFxIV1Ep00SY=; b=aNPToBbWbWrRi3tq/Sh5sGYsrXJE9dkg0iMS6a4FoH6d8e7wtUqRSzhq4mOTb4sEcd sWMZKfwh3VXWs1jAinrKy5jluNX9Hc0xYTfnftZAYypMKqEayIg+7iPeGzznVDbfnUQN YgAj5iGwJ1GxqDcwERksSV6n/rM8tOXWRS2Ndx14p6Cm5k+9y0PPyH34YCOW4x2rLwnv TvIoLXtC4k5oVxFCqL2O3DTp8ld/aVsEYizcvy5x5MW2gabMuP5kdA8WN4qiiMJ4Ejk7 XVHa5snk0e52Dcobyok37TatoRPKYuLf7k9AjC4uaqPrZ7l0JqryeuJ7EHBT9zDdLfWS GqIA== X-Gm-Message-State: APjAAAWb2fSJbTG6Pwgxdvp4Z4oXAhAhAxIQLviev78H6ZzuGsw1o3Q/ 6S4+GplwfJfVB7eOA+7ezAHjlh81 X-Google-Smtp-Source: APXvYqz4S1zjpN+VD9ff6njxGNgBXDus8jDbIf6bN1RCzXi6RAlmuJzc/8VvODs8FCBlLSG8rABqag== X-Received: by 2002:a5d:620b:: with SMTP id y11mr106564251wru.230.1578405372257; Tue, 07 Jan 2020 05:56:12 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id e18sm76167730wrr.95.2020.01.07.05.56.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jan 2020 05:56:11 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 7 Jan 2020 14:55:43 +0100 Message-Id: <20200107135549.22581-5-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> References: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 05/11] avformat/mpjpegdec: Remove redundant initializations X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" The AVPacket destined for a demuxer's output has already been initialized before it reaches the demuxer. Signed-off-by: Andreas Rheinhardt --- libavformat/mpjpegdec.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libavformat/mpjpegdec.c b/libavformat/mpjpegdec.c index 1e2ab0db1a..df2880412d 100644 --- a/libavformat/mpjpegdec.c +++ b/libavformat/mpjpegdec.c @@ -331,9 +331,7 @@ static int mpjpeg_read_packet(AVFormatContext *s, AVPacket *pkt) int remaining = 0, len; const int read_chunk = 2048; - av_init_packet(pkt); - pkt->data = NULL; - pkt->size = 0; + pkt->pos = avio_tell(s->pb); while ((ret = ffio_ensure_seekback(s->pb, read_chunk - remaining)) >= 0 && /* we may need to return as much as all we've read back to the buffer */ From patchwork Tue Jan 7 13:55:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17240 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id E79B544AC83 for ; Tue, 7 Jan 2020 15:56:23 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CB5A468AC51; Tue, 7 Jan 2020 15:56:23 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C689C68AD26 for ; Tue, 7 Jan 2020 15:56:13 +0200 (EET) Received: by mail-wm1-f65.google.com with SMTP id f129so19506039wmf.2 for ; Tue, 07 Jan 2020 05:56:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=d6tCO7ms7+Xn500Y5fVTO4zyLVFtRV1jeSg5UHiWfgg=; b=WDq3faJJ/cgySdafn8AhlLA9PqW6TWuKKQnMGLqr4j6uJgAX8ymglR0Fb0gI3YFLzr 9HwPq/lgd2bFLjBT+rPLld3U07ASoWSvhceJ8JcaXiQg3mKzqjFMUg3NYFyUxtz7VTEK KFuSf3etpYvByqs9FqeduinRhXctHthLzI0YlnjpSnXYWdEfAeCS7xAqZ47/PGVxTA8F 5ORIubDc6S8LrKnwjlxVnl6472OpnhaXO+U+2DMWXNG1fEEXIgmKHf8vai8kcBa1uhHG X7nFxqO/HWO+aMKpAEYYoIGVjmFiGDqCflIlpPfAq6TNlHfNh9BolSNDKqLVCwvzFf8v vstA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=d6tCO7ms7+Xn500Y5fVTO4zyLVFtRV1jeSg5UHiWfgg=; b=Db2IjTGcwf8BLlb+NGzjhTb/q7BP2dGeDibwCtI7BvPm2O0aC7u9Mx1rdUDrT+f/RZ vV5b+rcsYlzSTenkDu1Ka6OoKtJ0fh+6R5C3NPb0kRqLgOcQbhVNRzJsiutGEbqWk38g sNRO98GrlivAmpl8el9sv+LPgszLZ50HwMNY3zHsDxGi4oIp3OwwXNnrNZHAzsEdYaVa Hplfnndo4hkPjigXM6KLLyrAWMOhUDcAMfoZiPJgA1/tlI0mIHQy2NhJ5eeIS2SqNzNE TExBN5lKwvd74O/Wf9uvzZRooo+rUa9W2jrLl+KAFbBzLIi767SLK8BWy9p24hwjwE9D B4cw== X-Gm-Message-State: APjAAAXC/V+JuTdzqO8SQCjfZIz38z1la2Hy64UMGNYxj1ZxxwdHjwfB INX34RvAC9Bn5e0cuVegxVdgf5P2 X-Google-Smtp-Source: APXvYqxVcJyewW8+eWpU0xOvxrdFQPpPEnq2aGV/kSUPNafMg9AiQM/DIPigWWLHuYLki8zZFmy7Mg== X-Received: by 2002:a1c:f407:: with SMTP id z7mr38637124wma.72.1578405373065; Tue, 07 Jan 2020 05:56:13 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id e18sm76167730wrr.95.2020.01.07.05.56.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jan 2020 05:56:12 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 7 Jan 2020 14:55:44 +0100 Message-Id: <20200107135549.22581-6-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> References: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 06/11] avformat: Improve returned error codes X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This commit improves returned error codes by forwarding error codes. In some instances, the hardcoded returned error codes made no sense at all: The normal error code for failure of av_new_packet() is AVERROR(ENOMEM), yet there were instances where AVERROR(EIO) was returned. Signed-off-by: Andreas Rheinhardt --- libavformat/4xm.c | 8 +++++--- libavformat/flic.c | 13 +++++-------- libavformat/idroqdec.c | 5 +++-- libavformat/psxstr.c | 11 ++++++----- libavformat/rmdec.c | 8 ++++---- libavformat/vqf.c | 4 ++-- 6 files changed, 25 insertions(+), 24 deletions(-) diff --git a/libavformat/4xm.c b/libavformat/4xm.c index a6101a92ec..aea9226984 100644 --- a/libavformat/4xm.c +++ b/libavformat/4xm.c @@ -322,8 +322,10 @@ static int fourxm_read_packet(AVFormatContext *s, case cfr2_TAG: /* allocate 8 more bytes than 'size' to account for fourcc * and size */ - if (size + 8 < size || av_new_packet(pkt, size + 8)) - return AVERROR(EIO); + if (size > INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE - 8) + return AVERROR_INVALIDDATA; + if ((ret = av_new_packet(pkt, size + 8)) < 0) + return ret; pkt->stream_index = fourxm->video_stream_index; pkt->pts = fourxm->video_pts; pkt->pos = avio_tell(s->pb); @@ -347,7 +349,7 @@ static int fourxm_read_packet(AVFormatContext *s, fourxm->tracks[track_number].channels > 0) { ret = av_get_packet(s->pb, pkt, size); if (ret < 0) - return AVERROR(EIO); + return ret; pkt->stream_index = fourxm->tracks[track_number].stream_index; pkt->pts = fourxm->tracks[track_number].audio_pts; diff --git a/libavformat/flic.c b/libavformat/flic.c index da7b732388..e65c157777 100644 --- a/libavformat/flic.c +++ b/libavformat/flic.c @@ -215,10 +215,9 @@ static int flic_read_packet(AVFormatContext *s, magic = AV_RL16(&preamble[4]); if (((magic == FLIC_CHUNK_MAGIC_1) || (magic == FLIC_CHUNK_MAGIC_2)) && size > FLIC_PREAMBLE_SIZE) { - if (av_new_packet(pkt, size)) { - ret = AVERROR(EIO); - break; - } + if ((ret = av_new_packet(pkt, size)) < 0) + return ret; + pkt->stream_index = flic->video_stream_index; pkt->pts = flic->frame_number++; pkt->pos = avio_tell(pb); @@ -230,10 +229,8 @@ static int flic_read_packet(AVFormatContext *s, } packet_read = 1; } else if (magic == FLIC_TFTD_CHUNK_AUDIO) { - if (av_new_packet(pkt, size)) { - ret = AVERROR(EIO); - break; - } + if ((ret = av_new_packet(pkt, size)) < 0) + return ret; /* skip useless 10B sub-header (yes, it's not accounted for in the chunk header) */ avio_skip(pb, 10); diff --git a/libavformat/idroqdec.c b/libavformat/idroqdec.c index 56ab83424f..519f31d61a 100644 --- a/libavformat/idroqdec.c +++ b/libavformat/idroqdec.c @@ -205,8 +205,9 @@ static int roq_read_packet(AVFormatContext *s, } /* load up the packet */ - if (av_new_packet(pkt, chunk_size + RoQ_CHUNK_PREAMBLE_SIZE)) - return AVERROR(EIO); + ret = av_new_packet(pkt, chunk_size + RoQ_CHUNK_PREAMBLE_SIZE); + if (ret < 0) + return ret; /* copy over preamble */ memcpy(pkt->data, preamble, RoQ_CHUNK_PREAMBLE_SIZE); diff --git a/libavformat/psxstr.c b/libavformat/psxstr.c index ddc17e35d2..678b9f90ac 100644 --- a/libavformat/psxstr.c +++ b/libavformat/psxstr.c @@ -160,7 +160,7 @@ static int str_read_packet(AVFormatContext *s, AVIOContext *pb = s->pb; StrDemuxContext *str = s->priv_data; unsigned char sector[RAW_CD_SECTOR_SIZE]; - int channel; + int channel, ret; AVPacket *pkt; AVStream *st; @@ -213,8 +213,9 @@ static int str_read_packet(AVFormatContext *s, if(pkt->data) av_log(s, AV_LOG_ERROR, "mismatching sector_count\n"); av_packet_unref(pkt); - if (av_new_packet(pkt, sector_count*VIDEO_DATA_CHUNK_SIZE)) - return AVERROR(EIO); + ret = av_new_packet(pkt, sector_count * VIDEO_DATA_CHUNK_SIZE); + if (ret < 0) + return ret; memset(pkt->data, 0, sector_count*VIDEO_DATA_CHUNK_SIZE); pkt->pos= avio_tell(pb) - RAW_CD_SECTOR_SIZE; @@ -267,8 +268,8 @@ static int str_read_packet(AVFormatContext *s, st->start_time = 0; } pkt = ret_pkt; - if (av_new_packet(pkt, 2304)) - return AVERROR(EIO); + if ((ret = av_new_packet(pkt, 2304)) < 0) + return ret; memcpy(pkt->data,sector+24,2304); pkt->stream_index = diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c index 3c4b97d49f..a36e693ab2 100644 --- a/libavformat/rmdec.c +++ b/libavformat/rmdec.c @@ -781,8 +781,8 @@ static int rm_assemble_video_frame(AVFormatContext *s, AVIOContext *pb, return -1; } rm->remaining_len -= len; - if(av_new_packet(pkt, len + 9) < 0) - return AVERROR(EIO); + if ((ret = av_new_packet(pkt, len + 9)) < 0) + return ret; pkt->data[0] = 0; AV_WL32(pkt->data + 1, 1); AV_WL32(pkt->data + 5, 0); @@ -804,8 +804,8 @@ static int rm_assemble_video_frame(AVFormatContext *s, AVIOContext *pb, vst->slices = ((hdr & 0x3F) << 1) + 1; vst->videobufsize = len2 + 8*vst->slices + 1; av_packet_unref(&vst->pkt); //FIXME this should be output. - if(av_new_packet(&vst->pkt, vst->videobufsize) < 0) - return AVERROR(ENOMEM); + if ((ret = av_new_packet(&vst->pkt, vst->videobufsize)) < 0) + return ret; memset(vst->pkt.data, 0, vst->pkt.size); vst->videobufpos = 8*vst->slices + 1; vst->cur_slice = 0; diff --git a/libavformat/vqf.c b/libavformat/vqf.c index 15660e9fd8..617a9706f4 100644 --- a/libavformat/vqf.c +++ b/libavformat/vqf.c @@ -237,8 +237,8 @@ static int vqf_read_packet(AVFormatContext *s, AVPacket *pkt) int ret; int size = (c->frame_bit_len - c->remaining_bits + 7)>>3; - if (av_new_packet(pkt, size+2) < 0) - return AVERROR(EIO); + if ((ret = av_new_packet(pkt, size + 2)) < 0) + return ret; pkt->pos = avio_tell(s->pb); pkt->stream_index = 0; From patchwork Tue Jan 7 13:55:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17241 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 12A2E44AC83 for ; Tue, 7 Jan 2020 15:56:25 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F32C668ADF1; Tue, 7 Jan 2020 15:56:24 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6F23B68AD96 for ; Tue, 7 Jan 2020 15:56:14 +0200 (EET) Received: by mail-wr1-f67.google.com with SMTP id y17so54061727wrh.5 for ; Tue, 07 Jan 2020 05:56:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=qnR3ZJMA0wCli8Z7/te8S9/0PhXEAXauYwzWB2+TP6o=; b=EgMsFLMPnXuGzxaeQ3NnCSezR4gTdtodZ+dWXXTU9hBADPfGeyCHBGW7TUCsjnchEI PEIs9gXaK483u48SNzReksPpoo7j1cHM4b8prkwkjU+xpqY1IARI37RV96hCkBvJ257H VW2I/i4DMkuDGROoAfh83oh4wkTp+JJJaP+Xu0NKS7nxLvAlNuKwc3paH/aJ3TpsZUYY KTmIkTcdEn9WRMhgFlYTIk6xB0/5Z0sIqfPMGzFAjqsPq0O1k7ysDxx/CwoQFPbzGN3Y km2MOZ2CfL6tMnS9Zkg8Bshgy5O+gnrKZXkkVPFDn/ZbtTATRNItvpdqw3z29eevn4u9 mE9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=qnR3ZJMA0wCli8Z7/te8S9/0PhXEAXauYwzWB2+TP6o=; b=etjCe1NdZ839jwOWhw2CiYmx31nZ431/Lp09q8SRwsQOgJNqjuRNqKSnK+6BEwhyDE i+JGl2tvRmODqXAZct8t5a/fk5u7mzYSuNy+qKaRlwpMo72+b/0maaqmRQ2gpQhPBzIH CxR7Tjx5gkcVMLrYp+klfcjQOVEb0/EuJTnKm0LajiYuYciMfkvbFfCPUENqeHDmHws6 9vwuffzFCCCSNin7B0ueImiVrsaHgx42dB2M4iV32qlkLZCkq03VvVxXWs9OwmXpLFpu kA/AuBJfQF3rR01FVERRB9k47/OsFlvBJJry0hUPi5+ijoFKNp9M+zaMeUzyJ1eNy6eT brGg== X-Gm-Message-State: APjAAAXHIj/iOYv93YZ8sgXFN2dutwG18v9GqpVMoSVkC4jrNQKUVRL9 XKzIpVpRlruUBdx1bLvQTk+fados X-Google-Smtp-Source: APXvYqzBA8m+sv4H3sU0d4DA8p50wwLtZCwPtqaCMqBkzq5xnoawzDGhB549UK37hklWi1KMb3Awmw== X-Received: by 2002:a5d:6551:: with SMTP id z17mr115345527wrv.269.1578405373823; Tue, 07 Jan 2020 05:56:13 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id e18sm76167730wrr.95.2020.01.07.05.56.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jan 2020 05:56:13 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 7 Jan 2020 14:55:45 +0100 Message-Id: <20200107135549.22581-7-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> References: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 07/11] avformat/mpjpeg: Remove mpjpeg_write_trailer X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" It does nothing. Signed-off-by: Andreas Rheinhardt --- libavformat/mpjpeg.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/libavformat/mpjpeg.c b/libavformat/mpjpeg.c index 80f83c5871..ebb3ac4b2a 100644 --- a/libavformat/mpjpeg.c +++ b/libavformat/mpjpeg.c @@ -50,11 +50,6 @@ static int mpjpeg_write_packet(AVFormatContext *s, AVPacket *pkt) return 0; } -static int mpjpeg_write_trailer(AVFormatContext *s) -{ - return 0; -} - static const AVOption options[] = { { "boundary_tag", "Boundary tag", offsetof(MPJPEGContext, boundary_tag), AV_OPT_TYPE_STRING, {.str = BOUNDARY_TAG}, .flags = AV_OPT_FLAG_ENCODING_PARAM }, { NULL }, @@ -77,7 +72,6 @@ AVOutputFormat ff_mpjpeg_muxer = { .video_codec = AV_CODEC_ID_MJPEG, .write_header = mpjpeg_write_header, .write_packet = mpjpeg_write_packet, - .write_trailer = mpjpeg_write_trailer, .flags = AVFMT_NOTIMESTAMPS, .priv_class = &mpjpeg_muxer_class, }; From patchwork Tue Jan 7 13:55:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17242 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 1EB2A44AC83 for ; Tue, 7 Jan 2020 15:56:26 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0878068ADDB; Tue, 7 Jan 2020 15:56:26 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4B91368ABA8 for ; Tue, 7 Jan 2020 15:56:15 +0200 (EET) Received: by mail-wm1-f67.google.com with SMTP id 20so19465668wmj.4 for ; Tue, 07 Jan 2020 05:56:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=joDQuyYoeRHm0hbl5+EEzMY1JyEP1oyyFJ2PWVsJcIk=; b=H8JJJW38Ny1zKhT8bK4hRW/Qzcmt6ur6r7MQQ4z87ZiO9PBdeyASNU/MBbJzC/afsX oXbaAayNXbwO78mw/fOgM2U3szmQMUhAdwMXH6GPhGjJ+OMm9J9NrAz/Ruvd5ju4eK9t Gr31MW03AgMDX9dWTiQz2w8p7iGvJ545lTfF7QmD7RCv5rdvsNqzXBZO+naTL0JwWW/9 0skZ8pNeeOtrF5Zxg062nrKUlK8XmhvB5Nkkjt7rTTzyVQ4x7ThIJ+CYcIW7EmSoOTTe hJ1dNzARypPbtpgSwwBTJa498YbB5UW3U26aE6Q60vDA1hzGRWbSG5zFYkFww/LpPLkR 8P+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=joDQuyYoeRHm0hbl5+EEzMY1JyEP1oyyFJ2PWVsJcIk=; b=ruSAkz4yO7DjEUU1XZpRBAvH0bIvyyQkP+ja4eFwRIuKDlRBHrgfCVinlW1huOJGyA S1X/X3bc8j+5N67zroFl0XB7mO6VkpAIOUbOwiWuU7MJRkf0Xmw+jQr2/9P1ESuHrML5 5gxWMqZQwFm4XtcLvNSFtuSt+WgvWk5VYSIRmaL48L1y08qlq7BuHezi1SCGX2aYds6R Ls1PD8Qchy1kRwbsSv59c8D0cridlCAdUmGVk9t01TCyHVKjUW+ztMEiTALyNQ0ou1ak eLNL1ezoaJpUysxH9Fl8Yh1Sg9YAZASmgwv4KJymzs8NK4HQX7XNGV7rn7ecVxg34Etg b9BQ== X-Gm-Message-State: APjAAAXU1gIqSsvl0zyTNASg6IlCvF9YYX+yrVbMn54Fy1ia1FvOIlFQ Anq4q9xyLWJeeQ7l/VCSLXESrHwc X-Google-Smtp-Source: APXvYqzxpIWskCOQc9ng+b3sKqXeX1GyzfM1o+BuJNv+RAQ4TxsU5AQ/uDwLca7U5925vdgWLFgK7g== X-Received: by 2002:a05:600c:21da:: with SMTP id x26mr39252445wmj.4.1578405374556; Tue, 07 Jan 2020 05:56:14 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id e18sm76167730wrr.95.2020.01.07.05.56.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jan 2020 05:56:14 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 7 Jan 2020 14:55:46 +0100 Message-Id: <20200107135549.22581-8-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> References: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 08/11] avformat/dashenc: Fix leak of AVFormatContext on error X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" The Dash muxer uses submuxers and when one such submuxer has been allocated, it is initially only stored in a temporary variable. Therefore it leaks if an error happens between the allocation and storing it permanently. This commit changes this. Signed-off-by: Andreas Rheinhardt --- libavformat/dashenc.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c index b84736881f..dab7010179 100644 --- a/libavformat/dashenc.c +++ b/libavformat/dashenc.c @@ -1225,10 +1225,6 @@ static int dash_init(AVFormatContext *s) dict_copy_entry(&as->metadata, s->streams[i]->metadata, "language"); dict_copy_entry(&as->metadata, s->streams[i]->metadata, "role"); - ctx = avformat_alloc_context(); - if (!ctx) - return AVERROR(ENOMEM); - if (c->init_seg_name) { os->init_seg_name = av_strireplace(c->init_seg_name, "$ext$", os->extension_name); if (!os->init_seg_name) @@ -1261,10 +1257,13 @@ static int dash_init(AVFormatContext *s) } } + os->ctx = ctx = avformat_alloc_context(); + if (!ctx) + return AVERROR(ENOMEM); + ctx->oformat = av_guess_format(os->format_name, NULL, NULL); if (!ctx->oformat) return AVERROR_MUXER_NOT_FOUND; - os->ctx = ctx; ctx->interrupt_callback = s->interrupt_callback; ctx->opaque = s->opaque; ctx->io_close = s->io_close; From patchwork Tue Jan 7 13:55:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17243 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 13C8044AC83 for ; Tue, 7 Jan 2020 15:56:27 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F1AA768ADD1; Tue, 7 Jan 2020 15:56:26 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EDF3668ACD3 for ; Tue, 7 Jan 2020 15:56:15 +0200 (EET) Received: by mail-wr1-f67.google.com with SMTP id g17so54007138wro.2 for ; Tue, 07 Jan 2020 05:56:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7/ZsB0VHH8stEEA9Zgh9Knmfpoxd2+ztisGKBIJKOgc=; b=RpRL5U21U8Qa37y4Z6e4apczAoZzpRc8ujtZmzAnibR59KsUUy8YD8E3lgoDB/xQ0D LOwbaE8W4dvsAI7MDnrMdUqlT2aX56dEWHCxMIwL/tM/TJtYhisqZvdnuAAhmynu9yE3 AEoMEKRj4aTKk312m0XrySG3iPlNIl3XAXlvx48g4uAyD3sCAvwxNd+ml2aUnQ4989Ot aRdZS/okAwHzuezHBiBjELVrXnbXZCXdZJ8UH7Ahjl1XU281PxP3yMznmNZz5dQLUcPP vYJOSqVt/OZG1Bd7BgzqhzoITZGS3gFSsxNrjYVmdRW814/DYCO1us75imgPTmPHjiMv NTmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=7/ZsB0VHH8stEEA9Zgh9Knmfpoxd2+ztisGKBIJKOgc=; b=uk6sV5XJUNm0S07La7t9YyO4QSgeGBUgat3MyHl8am2NewD38AO5ohtYO4QXMLPYRC BPvU1JOK6j4X3d8wgB0LgeCzqbvZ0+Rs+AnzkHxyh8Z/iBUKRTP8B+3UTn8M/1c7VgCQ d8OM6pqq3Q379acWxtKqT43FbBtvPskDsB9BC7MFp4U9Uamx3EL9mVNqrjnNvNwM4UYW 5Rq1RBMWebhe+6rzWv6qPeAiw9b7u3MeFAWdXuyNwfQKJ4bt495Jfzg86K8uW81vUrax 9b5/709TIAa6f8SOZMXgs/7VA3N6qGWJZulILoZl5gR6dZ53vc/ZSW38JZeVIzOjAm1b mcOw== X-Gm-Message-State: APjAAAWlWE1h4ic2j4ymu4Gxh8E/X4BRzLvwBDytbTbiaExoz+P7ICON MQxnZrO3EmFJyX6cz+AsrvqIYJGG X-Google-Smtp-Source: APXvYqxf9gKudYU/dz+d1JBJy3GRYr+KrScfPKTxSV9JAs6qBX3TzMZTpexcj7SQEIUlcNSt3v2zgw== X-Received: by 2002:adf:e812:: with SMTP id o18mr105174484wrm.127.1578405375333; Tue, 07 Jan 2020 05:56:15 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id e18sm76167730wrr.95.2020.01.07.05.56.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jan 2020 05:56:14 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 7 Jan 2020 14:55:47 +0100 Message-Id: <20200107135549.22581-9-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> References: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 09/11] avformat/utils: Fix memleaks in avformat_open_input() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" A demuxer might have allocated memory while reading the header. If reading the header was successfull and an error happens before returning (e.g. when queueing the attached pictures), the read_close function would have never been called, so that all those allocations would leak. This commit changes this. Furthermore, there would be even more memleaks if the error level was set to AV_EF_EXPLODE in case there is both metadata and id3v2 metadata. This has been fixed, too. Signed-off-by: Andreas Rheinhardt --- libavformat/utils.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 2470a6ac0e..cf7dabefbb 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -642,26 +642,28 @@ FF_ENABLE_DEPRECATION_WARNINGS level = AV_LOG_ERROR; av_log(s, level, "Discarding ID3 tags because more suitable tags were found.\n"); av_dict_free(&s->internal->id3v2_meta); - if (s->error_recognition & AV_EF_EXPLODE) - return AVERROR_INVALIDDATA; + if (s->error_recognition & AV_EF_EXPLODE) { + ret = AVERROR_INVALIDDATA; + goto close; + } } if (id3v2_extra_meta) { if (!strcmp(s->iformat->name, "mp3") || !strcmp(s->iformat->name, "aac") || !strcmp(s->iformat->name, "tta") || !strcmp(s->iformat->name, "wav")) { if ((ret = ff_id3v2_parse_apic(s, &id3v2_extra_meta)) < 0) - goto fail; + goto close; if ((ret = ff_id3v2_parse_chapters(s, &id3v2_extra_meta)) < 0) - goto fail; + goto close; if ((ret = ff_id3v2_parse_priv(s, &id3v2_extra_meta)) < 0) - goto fail; + goto close; } else av_log(s, AV_LOG_DEBUG, "demuxer does not support additional id3 data, skipping\n"); } ff_id3v2_free_extra_meta(&id3v2_extra_meta); if ((ret = avformat_queue_attached_pictures(s)) < 0) - goto fail; + goto close; if (!(s->flags&AVFMT_FLAG_PRIV_OPT) && s->pb && !s->internal->data_offset) s->internal->data_offset = avio_tell(s->pb); @@ -680,6 +682,9 @@ FF_ENABLE_DEPRECATION_WARNINGS *ps = s; return 0; +close: + if (s->iformat->read_close) + s->iformat->read_close(s); fail: ff_id3v2_free_extra_meta(&id3v2_extra_meta); av_dict_free(&tmp); From patchwork Tue Jan 7 13:55:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17237 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id D826844AC83 for ; Tue, 7 Jan 2020 15:56:20 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C065868ACF8; Tue, 7 Jan 2020 15:56:20 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6225368AC30 for ; Tue, 7 Jan 2020 15:56:17 +0200 (EET) Received: by mail-wr1-f65.google.com with SMTP id c9so54046637wrw.8 for ; Tue, 07 Jan 2020 05:56:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iKVWlIAqWFBAeDn6RbDiQKfk9A7Hu0IZ9/QvAhHSFtc=; b=VU9fk6J8/kUDKSjsED4yoU29qnVm936u2kH8nXtCbz33BN0A06cIJuQmj90HjyfJvq w3IkuTTEweBuKvgUgUBfcdWDnOY8453CI+ANTjJ0+FgOnMj3ECRai73synLLo4UkFowj FaYEKzO6M2qA6EvCUK8HJAaECIQWKezK/zyh7wEdavZ+WgYP/igPJsj6b+UzVRGnk27W 4jNI4PeYxWznUzaeKQd05BQVAGYnGMxffgMJdrqtIHXckeG60gRT8DXGKkFFUnSNVVku bs29XGyPsGYhp+IEy8e4tgrpBnTLlVP5OFll+vf/qF/UvrREuq7meVwbo2MZnkep67mK jqsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=iKVWlIAqWFBAeDn6RbDiQKfk9A7Hu0IZ9/QvAhHSFtc=; b=bjdvu1MMu4OvimPys15o+sST4KdZrIAlNlFcHFnJJY/+57b14qyX/ZpsnHuQN0HBrO neUiXIXeRk1gBhQyMkWwHGsV2V8C4KUxUHcUfGg6US0V3t4fEU4iJ7pXW5Irjqwdgzay Bm0vJtzUlvDsNLvVpTvp9pNJLfDKmXQIbSVtH1fS5qT14ZfIheuJ3RKoZYU8E3H4u6/h TXZxL27ld74D5hgw9ysl8fI49erZ2TJMUIGY+ytW4IfvuRYvHTTJzyE0v+gUwjaQfF/O kJ/kSfwi/CO91TwfkpTOYx5NTKLIJfqa+YhgSKgBsx84tiYx1Xgf7ETR+YELoi0Yob4O NDNw== X-Gm-Message-State: APjAAAV3yS+oCpaSlhM9+2xgikSZR6552uWxUCGeEJpAiAzHUAxqsn5c hw+EzXqYXW/u17RgVPjzStt+5WEn X-Google-Smtp-Source: APXvYqxRmyMgbRkSRI9wlaRVxMRiEz6dXGknbFneJ8D7Vr2KSqkXEBh38cCjtloLEzrpt3LWLuW99A== X-Received: by 2002:a5d:46d0:: with SMTP id g16mr115024153wrs.287.1578405376757; Tue, 07 Jan 2020 05:56:16 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id e18sm76167730wrr.95.2020.01.07.05.56.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jan 2020 05:56:15 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 7 Jan 2020 14:55:48 +0100 Message-Id: <20200107135549.22581-10-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> References: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 10/11] avformat/wtvdec: Fix memleak when reading header fails X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Fixes #8314. Signed-off-by: Andreas Rheinhardt --- libavformat/wtvdec.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavformat/wtvdec.c b/libavformat/wtvdec.c index 706e8ca38d..92629bb31b 100644 --- a/libavformat/wtvdec.c +++ b/libavformat/wtvdec.c @@ -993,8 +993,10 @@ static int read_header(AVFormatContext *s) } ret = parse_chunks(s, SEEK_TO_DATA, 0, 0); - if (ret < 0) + if (ret < 0) { + wtvfile_close(wtv->pb); return ret; + } avio_seek(wtv->pb, -32, SEEK_CUR); timeline_pos = avio_tell(s->pb); // save before opening another file From patchwork Tue Jan 7 13:55:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17239 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 0013E44AC83 for ; Tue, 7 Jan 2020 15:56:22 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DCD7068AE29; Tue, 7 Jan 2020 15:56:22 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 54AFF68ACEF for ; Tue, 7 Jan 2020 15:56:18 +0200 (EET) Received: by mail-wr1-f66.google.com with SMTP id z7so53953987wrl.13 for ; Tue, 07 Jan 2020 05:56:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4GLAb9l+U1Tx8NjPFYCF7i83ZLAI9NbnoW5epQIkXu8=; b=u+NPoBqQC5ZL8kwl4sg46Dn9z6kkSAL2DbcQQWF9hJgSV9hhTIbWVOEFyDCymn+UWD 1etcLW+f23Nh84F0YTUzvLrS4lShJd6Wp+0sR95+gq0VtBZ0NDOza3tKS5ZQAQfJOLGv hS/pP4nucDsTLKCGscKB1FTl4hg3TpLx8nJ/8JRd0YVqUmwDRgRTecl4VIUgj/M5r2+e HmNb5vv3azEjywEimwmG70HAgSLTgYBzc70IxhehSDEVl7WWjZvW5yqjIhGzTxG7gZvz 7LEx75giQjkJHi8eji4HWIlfzHBX5O4K6sHuCtGIQAC09AWWzjUddVZXxMq5bPNCGcMX jwfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4GLAb9l+U1Tx8NjPFYCF7i83ZLAI9NbnoW5epQIkXu8=; b=B+zuXg0Z4bXNLbncmK180G7s15JoQ0wYJQ2iB3rcJCl99U5gHy+p2cDNCjb8pAmUP5 ND0JEEepal3ORE3Rj2r1D/CSZ3rz8EkQChqhfZRDtXTqNbWBm1hlf/TawzRuyJtALCo3 R0nXEtxHOHIk9cPAhunmU+O3lE6tWOnQw8dZtnR7MeCm/bYGSKuYGbwerW22a/oGjaYq Kp0h2r6NppHzhbsrpPFo6SrT/Z/nSYnbUDMfgCT/zC9SPv5RPLTwkf4lZkqnzozcd+iJ IADQ+nIOKQukzGlGQ12JenSsxd5rZL3+0lZhkEThlswForC6us5ywXzc1vKEfiTbApUi HD0w== X-Gm-Message-State: APjAAAUWx/f5YsTFWuPpVy2Kzz5jOBOJ1IbxpVjip1s090SfDketlEq9 VzeJytaMwoWo37nu6U+/27fHUdn6 X-Google-Smtp-Source: APXvYqzKim+NCaxg65P6LMQFGlx0/Z62H7cUPyqJSVuOAm5meHNvKVglSBMVCdv3hWZ0lQurbs2unw== X-Received: by 2002:a5d:608a:: with SMTP id w10mr102792721wrt.136.1578405377621; Tue, 07 Jan 2020 05:56:17 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id e18sm76167730wrr.95.2020.01.07.05.56.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jan 2020 05:56:17 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 7 Jan 2020 14:55:49 +0100 Message-Id: <20200107135549.22581-11-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> References: <20200107135549.22581-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 11/11] avformat/wtvdec: Cosmetics X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Andreas Rheinhardt --- libavformat/wtvdec.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavformat/wtvdec.c b/libavformat/wtvdec.c index 92629bb31b..67d934f074 100644 --- a/libavformat/wtvdec.c +++ b/libavformat/wtvdec.c @@ -290,7 +290,7 @@ static AVIOContext * wtvfile_open2(AVFormatContext *s, const uint8_t *buf, int b buf += dir_length; } - return 0; + return NULL; } #define wtvfile_open(s, buf, buf_size, filename) \ @@ -904,10 +904,10 @@ static int parse_chunks(AVFormatContext *s, int mode, int64_t seekts, int *len_p wtv->last_valid_pts = wtv->pts; if (wtv->epoch == AV_NOPTS_VALUE || wtv->pts < wtv->epoch) wtv->epoch = wtv->pts; - if (mode == SEEK_TO_PTS && wtv->pts >= seekts) { - avio_skip(pb, WTV_PAD8(len) - consumed); - return 0; - } + if (mode == SEEK_TO_PTS && wtv->pts >= seekts) { + avio_skip(pb, WTV_PAD8(len) - consumed); + return 0; + } } } } else if (!ff_guidcmp(g, ff_data_guid)) {