From patchwork Sun Mar 22 03:47:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 18338 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 C590E449B66 for ; Sun, 22 Mar 2020 05:51:24 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7FAF668B4C5; Sun, 22 Mar 2020 05:48:56 +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 9354668B5B0 for ; Sun, 22 Mar 2020 05:48:50 +0200 (EET) Received: by mail-wm1-f68.google.com with SMTP id d198so4851805wmd.0 for ; Sat, 21 Mar 2020 20:48:50 -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 :mime-version:content-transfer-encoding; bh=OJn+KZou1+8OoSRiRtoibzqOt+Yp1q/PQ4qvzFZ4PtA=; b=Jk01g/1kMCz1rjP4roABjRNeLHa8Tel69nX35lqT5PCUPItDAo1clhH4LGQvzLgn7J RggOk4gtSiDIkbHn1U79elmNaDysXZfAqz1KIrXGfznN1gJp9SZm0BM7ew0ZkysGIIMi O7Nc55kKuh6NLBM6RO6X7CnWNCl8skfiGmCQQBybS+Gr2WVYUAUbv4KrhZF6HFLYB8k8 l0hqjniHKSvgoMwnPgTaq0gBaQ4b904t4Q38sgCIrOYqhiX58HK70vX54WTNn+0Hnn9U p7CqH9TTtBCcmmBUQ/LoT1cYQpUXkgEn0sGbVyLa2NlL4hGRiStRtOBP42v3z9GTysXi IPlQ== 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=OJn+KZou1+8OoSRiRtoibzqOt+Yp1q/PQ4qvzFZ4PtA=; b=lyActcdW9Y3XCZPoVvZEv36tCNE6w6t/4FYSMDEfj2AxAhUIqP4KzRyNEESFpdLKJQ Q9lTR+wbS6ClTaojMLX0MnXDf9iyQGmxZK+vAxLsB7wmoa79/hJnFDWr57hIbTvV0aNS ea288yxACXyT674x6NKESpRWm1lnYj5Npp6NPSzGZmqAEKGOTbmdqkREoGhHAKwK5wcT TXmk/TUcz5i5VK+xeAsyXw6tOXjML1jbrogFl5ALqp7Xy+UVqGrCwmqGxWe1UcHySKZ7 rNgClSPd1q6rCKWmJg56KXFX0vFRN+v6SB8WhFynbDx6RUrw/3166+2MMDbInlpBju3X MAmw== X-Gm-Message-State: ANhLgQ1DSGKgeiMQjqXzCtjNTVKdY5EX+bp/s0tg0IPNdo7dGaQIoShM 3jBgxcLM1VVB5WuH/iq+InPTjK3m X-Google-Smtp-Source: ADFU+vvx4Wz32LfAtTVpY0B37w4BwmVuou+pDslrosd/xiTyOsppczduDhUXpA5mKCohqUEMyCgkmg== X-Received: by 2002:a05:600c:2901:: with SMTP id i1mr13288732wmd.177.1584848929715; Sat, 21 Mar 2020 20:48:49 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1ab57.dynamic.kabel-deutschland.de. [188.193.171.87]) by smtp.gmail.com with ESMTPSA id k204sm1530371wma.17.2020.03.21.20.48.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Mar 2020 20:48:48 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 22 Mar 2020 04:47:56 +0100 Message-Id: <20200322034756.29907-21-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200322034756.29907-1-andreas.rheinhardt@gmail.com> References: <20200322034756.29907-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 21/21] avformat/icodec: Simplify cleanup after read_header failure 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 setting the FF_INPUTFORMAT_HEADER_CLEANUP flag. Signed-off-by: Andreas Rheinhardt --- libavformat/icodec.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/libavformat/icodec.c b/libavformat/icodec.c index b47fa98f80..9449bb7315 100644 --- a/libavformat/icodec.c +++ b/libavformat/icodec.c @@ -96,10 +96,8 @@ static int read_header(AVFormatContext *s) break; st = avformat_new_stream(s, NULL); - if (!st) { - av_freep(&ico->images); + if (!st) return AVERROR(ENOMEM); - } st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; st->codecpar->width = avio_r8(pb); @@ -113,7 +111,6 @@ static int read_header(AVFormatContext *s) ico->images[i].size = avio_rl32(pb); if (ico->images[i].size <= 0) { av_log(s, AV_LOG_ERROR, "Invalid image size %d\n", ico->images[i].size); - av_freep(&ico->images); return AVERROR_INVALIDDATA; } ico->images[i].offset = avio_rl32(pb); @@ -130,7 +127,6 @@ static int read_header(AVFormatContext *s) break; case 40: if (ico->images[i].size < 40) { - av_freep(&ico->images); return AVERROR_INVALIDDATA; } st->codecpar->codec_id = AV_CODEC_ID_BMP; @@ -143,7 +139,6 @@ static int read_header(AVFormatContext *s) break; default: avpriv_request_sample(s, "codec %d", codec); - av_freep(&ico->images); return AVERROR_INVALIDDATA; } } @@ -224,4 +219,5 @@ AVInputFormat ff_ico_demuxer = { .read_packet = read_packet, .read_close = ico_read_close, .flags = AVFMT_NOTIMESTAMPS, + .flags_internal = FF_INPUTFORMAT_HEADER_CLEANUP, };