From patchwork Sat Oct 31 14:16:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 23303 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 8AABE44B86B for ; Sat, 31 Oct 2020 16:24:54 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6EBCE68AB33; Sat, 31 Oct 2020 16:24:54 +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 993456881E5 for ; Sat, 31 Oct 2020 16:24:52 +0200 (EET) Received: by mail-wm1-f65.google.com with SMTP id c9so3770750wml.5 for ; Sat, 31 Oct 2020 07:24:52 -0700 (PDT) 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:reply-to :mime-version:content-transfer-encoding; bh=1HzkH2Ug5Oo4zoaDX2zFsTpMMl0NOMTYxwgeOVKYp3g=; b=GuLavGHRwibHhfjbie2mLS8q1KoRGj5A3kR1HplW6FKU6BHLQeCei/Hid+LimmAYPz 2XhkjA7FzKzyqy7xhFWrFbbDHCv3zQ/wsA4nE/86uDx18Ec2lswjzaRi688aS+4FU1I5 LOHPNBGzaSeQKgHYfrM+sqAV0gZ/gzCv0sP1U72eyo7hKcno+GGDGyO9IIgR8e9ilRW1 6+/9V73Ae5NGXCrLHxtb3oSP3OyOzalKN+3i8pzIZroofaxZ3xZ95ByC4qL5mz8qg1kQ owl6fBzO/wL1dXG6bm4KzCdH0Y2t8wEtpLQunUjRfBAE3D4OHQQDLYQou5Skofuh4+yC gmVg== 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:reply-to:mime-version:content-transfer-encoding; bh=1HzkH2Ug5Oo4zoaDX2zFsTpMMl0NOMTYxwgeOVKYp3g=; b=e8eReq2X6X/a6rPAk4fcWOHSR3T+76YbTsOFFkC2Ny1/eZYGqUiaYytMkvcfxY7jYv fJ0GZkVGzeUnKtRKTfGo8RvvBFVwT6yKrjPuFn8FrDv6Syvpx1f3TY6WW4G3FQur1gDZ DBOi/sXJrvsaRf00ihrzYSh7J3VqYvWvu4Kn1+vsepWDY/vPmLlGeeJ1Q3Vgh8R79nvM eWHRACxp+T8QI0PAoELn5LyKbmNWqG0OahIandGJnBquwsAoXeLXeSl3gpOdOQny6Hvf DyejXgGM+oa1NzeTAGq9cM/HO3/bf9xg1MoAXKlRwdiyHaLwzQz249nvqyF0hKWcRqQI rS7A== X-Gm-Message-State: AOAM5320Z/i1gZeWU4MyranTeIiMfZYAP90N2WZbw2dSolyS0fOHuHht j1vxY+lEFAu58pLGM51KSyfOJmA5K5I= X-Google-Smtp-Source: ABdhPJxjzgPKAqjIDECaqolyf2wKOg/7W/V8LA/zsy/i3mVeTXgp+KVav4f3ve9p6kGj5U+1nwMlRQ== X-Received: by 2002:a1c:9c51:: with SMTP id f78mr8764949wme.189.1604153818292; Sat, 31 Oct 2020 07:16:58 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id r1sm15522273wro.18.2020.10.31.07.16.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 31 Oct 2020 07:16:57 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 31 Oct 2020 15:16:26 +0100 Message-Id: <20201031141626.727000-4-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201031141626.727000-1-andreas.rheinhardt@gmail.com> References: <20201031141626.727000-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 4/4] avformat/apngdec: Remove goto fail that does nothing 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/apngdec.c | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/libavformat/apngdec.c b/libavformat/apngdec.c index 6b2ce2e251..bf8343faf3 100644 --- a/libavformat/apngdec.c +++ b/libavformat/apngdec.c @@ -151,17 +151,17 @@ static int apng_read_header(AVFormatContext *s) uint32_t len, tag; AVStream *st; int acTL_found = 0; - int64_t ret = AVERROR_INVALIDDATA; + int64_t ret; /* verify PNGSIG */ if (avio_rb64(pb) != PNGSIG) - return ret; + return AVERROR_INVALIDDATA; /* parse IHDR (must be first chunk) */ len = avio_rb32(pb); tag = avio_rl32(pb); if (len != 13 || tag != MKTAG('I', 'H', 'D', 'R')) - return ret; + return AVERROR_INVALIDDATA; st = avformat_new_stream(s, NULL); if (!st) @@ -193,11 +193,9 @@ static int apng_read_header(AVFormatContext *s) int64_t size = avio_size(pb); int64_t offset = avio_tell(pb); if (size < 0) { - ret = size; - goto fail; + return size; } else if (offset < 0) { - ret = offset; - goto fail; + return offset; } else if ((ret = ffio_ensure_seekback(pb, size - offset)) < 0) { av_log(s, AV_LOG_WARNING, "Could not ensure seekback, will not loop\n"); ctx->num_play = 1; @@ -205,20 +203,18 @@ static int apng_read_header(AVFormatContext *s) } if ((ctx->num_play == 1 || !acTL_found) && ((ret = ffio_ensure_seekback(pb, 4 /* len */ + 4 /* tag */)) < 0)) - goto fail; + return ret; len = avio_rb32(pb); - if (len > INT_MAX - 12) { - ret = AVERROR_INVALIDDATA; - goto fail; - } + if (len > INT_MAX - 12) + return AVERROR_INVALIDDATA; tag = avio_rl32(pb); switch (tag) { case MKTAG('a', 'c', 'T', 'L'): if ((ret = avio_seek(pb, -8, SEEK_CUR)) < 0 || (ret = append_extradata(st->codecpar, pb, len + 12)) < 0) - goto fail; + return ret; acTL_found = 1; ctx->num_frames = AV_RB32(st->codecpar->extradata + ret + 8); ctx->num_play = AV_RB32(st->codecpar->extradata + ret + 12); @@ -227,21 +223,17 @@ static int apng_read_header(AVFormatContext *s) break; case MKTAG('f', 'c', 'T', 'L'): if (!acTL_found || len != 26) { - ret = AVERROR_INVALIDDATA; - goto fail; + return AVERROR_INVALIDDATA; } if ((ret = avio_seek(pb, -8, SEEK_CUR)) < 0) - goto fail; + return ret; return 0; default: if ((ret = avio_seek(pb, -8, SEEK_CUR)) < 0 || (ret = append_extradata(st->codecpar, pb, len + 12)) < 0) - goto fail; + return ret; } } - -fail: - return ret; } static int decode_fctl_chunk(AVFormatContext *s, APNGDemuxContext *ctx, AVPacket *pkt)