From patchwork Sun Jun 16 23:08:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 49962 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:9196:0:b0:460:55fa:d5ed with SMTP id s22csp1606740vqg; Sun, 16 Jun 2024 16:09:37 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUepnfdzGCQ/Gb98trAs3o+8BfiYOLQKA5/Mq0yEYcsAzmQrt/mH1O9MSOZRL63KNnFy/Bf+GXCI8+skKsdQmUbaM9VHEeHh/ijBQ== X-Google-Smtp-Source: AGHT+IEgZvFATVxO+qM9YJOGlC7Y/VV/DvATNQWvqh7EN3fL9ddYj1RFKVwN/07gMntuTOH4gaRN X-Received: by 2002:a17:906:dfe9:b0:a6f:4de6:79f with SMTP id a640c23a62f3a-a6f60d45630mr511283866b.40.1718579377192; Sun, 16 Jun 2024 16:09:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1718579377; cv=none; d=google.com; s=arc-20160816; b=h7mt++Xqp4bmM/MyMDabvEUgfrG1Tphc4+vG4IBxDCTG621dyCVK+L2QovCPceEHrJ PdHZ/c9uZgHK4aYqcuU2kPABHp7BEKUSa2a2E7e27ZIruFpcjJRu4QFowWLR+OgcMNNW UKWfxjTYlaIp5spHiYFL5axGLKGl10TE+rGj/TJCEqyEl2GeNDa5D/3/Hx2Lwi7efR4j Bj8/9z93xZLbZRkaq42X0wKfbFk4j2yG7+6D4e4Jk10tGSfgT4uq/h8VQMqFBLbezWQh BcNpXvoi4HP/apPdmdI9SK5ogWw7V/Mk/iq7pDlLUxxYH+iTXQtYf38dxrJGks7uSwpD T+zw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=anEqrx1owUQBqUvclJ7C8ZPJMtni2ujylpt/iPPYIJU=; fh=e5zN9xSzcxLA6bGo3lF+CqTbY/oLwzApV03EO/RBfgQ=; b=bRhiH6LF6elO6OzXSukYUTaXx1YbQics76WU/40toVGjjIaeso3wBBNIZMTHXC4OL7 9PAcXMa5EDYPIWIzbat88P5MyNP89s4KzsBUAm5O4r4KXbbIsMCJOCVK/avtWrLLlS+3 vAiF57JKK1/SZUfeA4UpnnmcveN2A6n2rFmB1DiMjjTwu28M4o8lOAz5/B93Tmf3L0Bk 6zcQ/2H2cpyFV4BQmlLX0XyQ+/Wadt3Er/KUmvoHbuTJfVDrK3waAu3E4a7s1oe6C6Wc 7l5Ts+WzwTNZTUcz1zQ10CGXzZck3/p+8h27qWvi7Hp+rC7CrbifG+f5fLuRE48nvQfW +9Iw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@niedermayer.cc header.s=gm1 header.b=ezvbl3bI; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a6f56e26f84si398692866b.807.2024.06.16.16.09.32; Sun, 16 Jun 2024 16:09:37 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@niedermayer.cc header.s=gm1 header.b=ezvbl3bI; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0330468D766; Mon, 17 Jun 2024 02:08:51 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [217.70.183.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 98AEC68D740 for ; Mon, 17 Jun 2024 02:08:38 +0300 (EEST) Received: by mail.gandi.net (Postfix) with ESMTPSA id C0C81E0002 for ; Sun, 16 Jun 2024 23:08:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=niedermayer.cc; s=gm1; t=1718579317; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0Fo1k3xYNn0XNG2ZS2+J9yyyjtlI4DwtEx//bJNrDYg=; b=ezvbl3bIbJnOb0cjvEIYGR48+7eLH1Ps9cJCrxdk8d3an6v52WH5B9cjyzcRJK3S6qHz+N NEn2ZliDb0DRyEh1NHPUxdJR1WIrnmtfCYOKTze+8OX8p9TiL/Vm9qvpCqfzSId1OuFlQ0 4OMSG1RQUp/pn6V+54U2lDML9G0SGe5u1ic/QT8CToACNB8GiKbG7SHKtbbK+wVhfShIVq inw2i9+tbz0JMVzfhXMuXu5Tpc378dedXbnF9eSSIZfn50vn3ZBZmZ0mL/0+FVyj1ZZpyV xyXFUsNHSkVmIYkJTOq4tNLGCNq06F7MpgG8W5aqtqkJA/lRTY1iEJud1iH3yQ== From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Mon, 17 Jun 2024 01:08:28 +0200 Message-ID: <20240616230831.912377-6-michael@niedermayer.cc> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240616230831.912377-1-michael@niedermayer.cc> References: <20240616230831.912377-1-michael@niedermayer.cc> MIME-Version: 1.0 X-GND-Sasl: michael@niedermayer.cc Subject: [FFmpeg-devel] [PATCH 6/9] avcodec/libvpxenc: Cleanup on error X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: xgCcMVTAGv+1 This or fifo needs to be freed on errors explicitly I have not verified that its always safe to call vpx_free() this needs to be checked before applying this Fixes: memleak Fixes: 68937/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_LIBVPX_VP8_fuzzer-4830831016214528 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer --- libavcodec/libvpxenc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index 5c7b6e9de73..5490246d9ed 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -2042,6 +2042,7 @@ const FFCodec ff_libvpx_vp8_encoder = { FF_CODEC_ENCODE_CB(vpx_encode), .close = vpx_free, .caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE | + FF_CODEC_CAP_INIT_CLEANUP | FF_CODEC_CAP_AUTO_THREADS, .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_NONE }, .p.priv_class = &class_vp8, @@ -2118,6 +2119,7 @@ FFCodec ff_libvpx_vp9_encoder = { FF_CODEC_ENCODE_CB(vpx_encode), .close = vpx_free, .caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE | + FF_CODEC_CAP_INIT_CLEANUP | FF_CODEC_CAP_AUTO_THREADS, .defaults = defaults, .init_static_data = vp9_init_static,