From patchwork Wed Dec 20 10:26:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 45244 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1e68:b0:181:818d:5e7f with SMTP id cy40csp251296pzb; Tue, 19 Dec 2023 18:26:59 -0800 (PST) X-Google-Smtp-Source: AGHT+IGTwYmwYvzK3RbxyMXe2IJgK/Sf6DYQ+u1/N90xzfyxxqSjA8vRhG0qywEDr59wREwt/4uD X-Received: by 2002:a50:ccd9:0:b0:553:123:4ca5 with SMTP id b25-20020a50ccd9000000b0055301234ca5mr2809016edj.75.1703039219199; Tue, 19 Dec 2023 18:26:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703039219; cv=none; d=google.com; s=arc-20160816; b=B/sZUeWAM8w/puSk2l69g1YZtbRuCuDarS+XwJpjVmcepVH3txSb/Uzmdixe3nYQhi WpFvMTQrRDV6xszTPd4m8yx1O/7hvrWD48Movu6n2i7OsJOTLbLSu5tecocWJv6s3tB4 yh+QPB/Ze4dLAj3hz+gBby2EswiHIhmf817U0qeWnkw6RaAtkNSWTxvyFQ5vVGjBQuDm meChYg9NU/jHe8RwfCmVVZi1bqFjoY7uYwnxQ2HcwTkOTPeAOyX/zODO5F0xQkBXfOH7 pU8ix2jOxSnhsw9tX0fFTQmIeptb3atcSy0eOw47ks48DF1wNTgbpu0oNq+nuqyFf9EC Gvmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:date:to:from:message-id :dkim-signature:delivered-to; bh=2wR+VsWXqIdaZpcvbhQuuUve7WZhItaPmRn+3KuRvnU=; fh=HnHYuZ9XgUo86ZRXTLWWmQxhslYEI9B9taZ5X1DLFfc=; b=lSUqvBbMS5T7PEwzfO95rXvnrtXKtP+YHG2ll9z18zM8XhxCKK7DlI8vle/98nV3Hv m20Ul9zdS5nZMHfYCGPNc7PSMNCahRnTAS/T5GEfwuEr0dibm53WY4zvKufUYvLCOjb2 OtBvssblkd7MdtuJf4tk6Ej6JfoM8QNz9fNvVBU7vVX+qop6Xs0DMB6si3VpBZ/lp+KK rmmIcaFy2c/GHHkOzkJBq+qg+KG6z9olT0k+zN2c6pHpTkfUo1Asst+lMUaUuN/Xu0hA k1sOiZHS4Ln066uAAGuKZ0M2TT43LI4kdamlvLWhjaP+8nnb5VAChFYEXBiMJ/N1dJEE RydA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=emkFR7TP; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id j3-20020a508a83000000b00553456e44a3si2491268edj.602.2023.12.19.18.26.45; Tue, 19 Dec 2023 18:26:59 -0800 (PST) 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=@foxmail.com header.s=s201512 header.b=emkFR7TP; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B3A6568CFAA; Wed, 20 Dec 2023 04:26:40 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-235.mail.qq.com (out203-205-221-235.mail.qq.com [203.205.221.235]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9246D68CD59 for ; Wed, 20 Dec 2023 04:26:33 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1703039183; bh=fkq2Jo2VWS5xjv3Zmt6pJ4lAWaa4aDWV6ivPxSYE0lU=; h=From:To:Cc:Subject:Date; b=emkFR7TPs2jglhht9oohy6GnP2rhDimfVDitrVOKO2ctKqIqQfsYcN8ptCPTmI6B0 8oB7wLjh0yARpxhlNWHmLOjk/goPxjw5UBo4PUgZVbUCBeccW+/jN1x9rJJOQPeCE4 MYCj6rH31/2G8VvyvMfa7Fq/LZuCYxSoaEqBNqoc= Received: from localhost.localdomain ([113.108.77.61]) by newxmesmtplogicsvrsza10-0.qq.com (NewEsmtp) with SMTP id 6968A626; Wed, 20 Dec 2023 10:26:22 +0800 X-QQ-mid: xmsmtpt1703039182t0nceu9iy Message-ID: X-QQ-XMAILINFO: M7uElAZZZMmFED9XRmM5uTKVs/Ztq/BJmmvjIKOzitLyK/IFZSecZLZQmLFrgY 0wnThp58Bd/3deoITU+WWpTAo5iPbULChiQUXFj5f2o01h4rf/sBWrG6MIJfoSIUhF9gSp+KNUVB sg2vGlXRgOmatJs/oMNf50XCWb3OxIO4JJuywGx4SHt1dniEKWwzT3HoV2uilZRLe5Z4UdaVFIEW 1YgiZoo51lAHpAA48xevlArGPAvrE0QUITZrSoznUyRjKVIjrwnVXlouGhwSa7CMdge6dR652zVY Wne6ziRWiREbye1rj/OKD+2Z90yONFMlqxGP6FH6s4c0jH/EiVkWjA1K/9jX8WSHgW+NkagTddjY 7PU+iHcoIJKoxzQZmUMQz6diYF8csBMYWVzVbFvwoAUvbVuyb1c0TvIjmgL8xMpozoD5qxEPZj9g ml5yjfLlA15qO2sUO31ZUoJc6djytJS2j7y4IT79fXJ3QTVRq9vdprQ/4OfMztJW8HqschhTg25t Z152Q3q2vCTnBAVCK/HIBjIULEFZRUlptQm5EWNTsBIF7Vww0kPvteCBrZp0kZsvQ3ELNqhxkiq8 X0fWIIp+A0p7cLlVaYqCLufGgg0VZX4p4wUlriaFI7eXrIQ6VqqO2daf0tdaLz5XX22lait9UiAF QLMzUQeL18f1mRu3A3SuQAOonYz0TX5kW3f7ilcgj4mxDMpYqHRDhmf/TF8XMyCbFZ60sfdqFywb o1UO+Dd4wFhPMiNszKXHEMu6BzvNKe1oFhtwCfNC8nOLRsQsV8zsjImeb/N3SPYO+kCpozwMNyo+ OHx1r1IdIujkJtJjUUBGuSeW9aGGqBUcHpWNsDraThWAp/ou3+qR5EGET+Y6BeytDka4UJhOXM6G jh7CAKjdy+gXr+JzFe7cNj+Zh9DBKrA0GIuMsS6FBP91o8RRaHCaDq90KYnLVSXYFSr1PKNLQV+6 apWlNvO1n8MkTCrzxjeCwdhrESBXiQUM9jP6srsR8= X-QQ-XMRINFO: Nq+8W0+stu50PRdwbJxPCL0= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Wed, 20 Dec 2023 18:26:22 +0800 X-OQ-MSGID: <20231220102622.478661-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 1/3] fftools/ffmpeg_filter: fix NULL pointer dereference 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 Cc: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 5BtAc62i2Te7 From: Zhao Zhili In close_output(), a dummy frame is created with format NONE passed to enc_open(), which isn't prepared for it. The NULL pointer dereference happened at av_pix_fmt_desc_get(enc_ctx->pix_fmt)->comp[0].depth. When fgt.graph is NULL, skip fg_output_frame() since there is nothing to output. frame #0: 0x0000005555bc34a4 ffmpeg_g`enc_open(opaque=0xb400007efe2db690, frame=0xb400007efe2d9f70) at ffmpeg_enc.c:235:44 frame #1: 0x0000005555bef250 ffmpeg_g`enc_open(sch=0xb400007dde2d4090, enc=0xb400007e4e2daad0, frame=0xb400007efe2d9f70) at ffmpeg_sched.c:1462:11 frame #2: 0x0000005555bee094 ffmpeg_g`send_to_enc(sch=0xb400007dde2d4090, enc=0xb400007e4e2daad0, frame=0xb400007efe2d9f70) at ffmpeg_sched.c:1571:19 frame #3: 0x0000005555bee01c ffmpeg_g`sch_filter_send(sch=0xb400007dde2d4090, fg_idx=0, out_idx=0, frame=0xb400007efe2d9f70) at ffmpeg_sched.c:2154:12 frame #4: 0x0000005555bcf124 ffmpeg_g`close_output(ofp=0xb400007e4e2d85b0, fgt=0x0000007d1790eb08) at ffmpeg_filter.c:2225:15 frame #5: 0x0000005555bcb000 ffmpeg_g`fg_output_frame(ofp=0xb400007e4e2d85b0, fgt=0x0000007d1790eb08, frame=0x0000000000000000) at ffmpeg_filter.c:2317:16 frame #6: 0x0000005555bc7e48 ffmpeg_g`filter_thread(arg=0xb400007eae2ce7a0) at ffmpeg_filter.c:2836:15 frame #7: 0x0000005555bee568 ffmpeg_g`task_wrapper(arg=0xb400007d8e2db478) at ffmpeg_sched.c:2200:21 --- fftools/ffmpeg_filter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c index 9fc877b437..f175ca7918 100644 --- a/fftools/ffmpeg_filter.c +++ b/fftools/ffmpeg_filter.c @@ -2835,7 +2835,7 @@ read_frames: for (unsigned i = 0; i < fg->nb_outputs; i++) { OutputFilterPriv *ofp = ofp_from_ofilter(fg->outputs[i]); - if (fgt.eof_out[i]) + if (fgt.eof_out[i] || !fgt.graph) continue; ret = fg_output_frame(ofp, &fgt, NULL);