From patchwork Sun Apr 23 22:32:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 41303 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dca6:b0:f3:34fa:f187 with SMTP id ky38csp1041049pzb; Sun, 23 Apr 2023 15:32:49 -0700 (PDT) X-Google-Smtp-Source: AKy350aObV+5TOwXm+8qWG/8FXYmb1Al1jR1AQ83rYXGcrFvUiWUGoKQ61x+45CAz6iJ36Y5oYbr X-Received: by 2002:a17:906:348a:b0:94f:24d7:64d4 with SMTP id g10-20020a170906348a00b0094f24d764d4mr7582590ejb.37.1682289169561; Sun, 23 Apr 2023 15:32:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682289169; cv=none; d=google.com; s=arc-20160816; b=cFf7mEM3WiPgw306iPhNDFwW+5Yo5ylIqEzGK9ctZRfkX1chgBtgdsb4GHK4SdU40r NCv4xgeixIiE8M7y6RwaGwtnko+W3Vzu3cQQ398OZtAaSpcfnAwXkhLmYdSIJ9Gy8sMb weJ4QDLkvlt3nikO338hKNfZNilFovrEQTDhq6p9aahgRpu6rgrGOWzcrFu0rB7RRO40 BE2gQvxEXdBxpBoCB+/xiDz5IylKMNl9DNRlJeiWYqo+gYSl+xYMosqTgTQfwOhUUOTw Ng5lgCHabc/cwd+kG1Zx28KgGxBk+opE0+JC/paMjE0+Xorp6YMHhXWOTgHaew/JFCMw HWlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:delivered-to; bh=CSHIy+Z61WiPoZ1QE/aKdNgRSMFaNh1szOL1EedfeJ4=; b=lnJ0FxS+oZem10rOFtSONE4n5MHF8b3HAEKvSxnhstMzS9doAN4/sJHKs3PPathiaV gu+yYstgla8YqWggmo07jBmq3jKbdnrI8Jr0sqSVmuIc3fQ9QmVOFfOaT9o1qTmZYoFO PTFTtu4kdAbewyJ9JhlT5B+i97Mhdp4aEqxQSbLCn/jGukBfbKZJpDiDmcULoh/n5ZiT w3sKntqnJJDZ1t7dZreWvbJ4qOZufmtrWV5bFSTVMmfe23+yDEnlNKIgPzm2Z9LULCIZ 5OIS/U5wc4+dQ6AwSzfvl/o0cDfjLSujI8w1xo3wMG7a6sfQaBsDzG3NK9w7GhD1y8Ow dFrg== ARC-Authentication-Results: i=1; mx.google.com; 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 pj25-20020a170906d79900b009572ab01338si4388737ejb.457.2023.04.23.15.32.48; Sun, 23 Apr 2023 15:32:49 -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; 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 A0F7D68BA97; Mon, 24 Apr 2023 01:32:45 +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 5E8C668B5E6 for ; Mon, 24 Apr 2023 01:32:38 +0300 (EEST) Received: (Authenticated sender: michael@niedermayer.cc) by mail.gandi.net (Postfix) with ESMTPSA id 669A4E0004 for ; Sun, 23 Apr 2023 22:32:37 +0000 (UTC) From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Mon, 24 Apr 2023 00:32:31 +0200 Message-Id: <20230423223236.375-1-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH 1/6] tools/target_dec_fuzzer: Adjust threshold for FMVC 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: T7YAOt12sfH1 Fixes: Timeout Fixes: 56753/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_FMVC_fuzzer-5115163557888000 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer --- tools/target_dec_fuzzer.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/target_dec_fuzzer.c b/tools/target_dec_fuzzer.c index 93869db04c..f059ddb4c7 100644 --- a/tools/target_dec_fuzzer.c +++ b/tools/target_dec_fuzzer.c @@ -233,6 +233,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { case AV_CODEC_ID_FLAC: maxsamples /= 1024; break; case AV_CODEC_ID_FLIC: maxpixels /= 1024; break; case AV_CODEC_ID_FLV1: maxpixels /= 1024; break; + case AV_CODEC_ID_FMVC: maxpixels /= 1024; break; case AV_CODEC_ID_G2M: maxpixels /= 1024; break; case AV_CODEC_ID_GEM: maxpixels /= 512; break; case AV_CODEC_ID_GDV: maxpixels /= 512; break; From patchwork Sun Apr 23 22:32:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 41304 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dca6:b0:f3:34fa:f187 with SMTP id ky38csp1041093pzb; Sun, 23 Apr 2023 15:32:59 -0700 (PDT) X-Google-Smtp-Source: AKy350YdG3T4BKHf4C5FuuOvd6/ngZ/0iIjSls3XFMGZUGkL1UJSnxGqj7CMdLEYVrW7NSQRfU6J X-Received: by 2002:a17:906:7c41:b0:956:fdb6:bc77 with SMTP id g1-20020a1709067c4100b00956fdb6bc77mr8026704ejp.30.1682289178826; Sun, 23 Apr 2023 15:32:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682289178; cv=none; d=google.com; s=arc-20160816; b=goYvCUGszrjMiw2OooAaP4kWV69dgrnfwfLKldQKDUbluJTpWnqmEKWR3JRVFK43qe +NwqcPc0jtX369otNSiEbT+gNE8FanSwKvEOlcTpSc7FltV1XVpob+NF0WHy2mF6AwLH XiGgTvMGuZ84C69lIiObo01eW3JlZnyZJmlvgj1QTQvs0B5onKxurc264leERz0cncqa qgUMJt3u8EEstltDba6UsWlxGT7qBQev9yyNkXdq77bW88dylxUnzBy0eqjWR574tZjI 7wt8FTuqzJkDCwM0evgrf39AvkqvvpOWM8pPXkt2fdyvoY+P8PrbT7ClsJvTQS+vosTS osTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:delivered-to; bh=NNkVJoLAo/XI8Lkl6c0jhaI+WkiIc7rffEX2R8DKVzE=; b=J0J/OKQBbbnjguYyjoICXJYecmpLnhV2s2Ku8SdBrD2Sqd9IG5YBhYMu1DCQrhr7rO ByFd6NgEtSiWLDU5MNkscU0wsiDjj7cJCuTX6MB9e39WoZPZDUUyAUtd1BNBLcqqZ4wh rhr0ne+hKwOSjx5/xaeZoKv8+aLjH+GVRKaylZUFCIAC16Uuc653E6eEiHLW4o3FYwRL uLASImLN4LIz3f0+fOxzYQJ2nG0jN8zerB8EGY4McTF76RFXQagCMlASPIXTZu20enYK ID32Ws5D9ByfPuKHAfihYtOr+YBEECccHm7rsmYwCB5QnvNefWB+E/ZQSNMOBixbxnKd jEjw== ARC-Authentication-Results: i=1; mx.google.com; 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 t19-20020a17090616d300b0094f76af1aa7si6556219ejd.655.2023.04.23.15.32.58; Sun, 23 Apr 2023 15:32:58 -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; 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 A898168BF78; Mon, 24 Apr 2023 01:32:47 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net [217.70.183.201]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 78F5268BA82 for ; Mon, 24 Apr 2023 01:32:39 +0300 (EEST) Received: (Authenticated sender: michael@niedermayer.cc) by mail.gandi.net (Postfix) with ESMTPSA id 8F6101BF205 for ; Sun, 23 Apr 2023 22:32:38 +0000 (UTC) From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Mon, 24 Apr 2023 00:32:32 +0200 Message-Id: <20230423223236.375-2-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230423223236.375-1-michael@niedermayer.cc> References: <20230423223236.375-1-michael@niedermayer.cc> Subject: [FFmpeg-devel] [PATCH 2/6] avcodec/apedec: Move pointer instead of copying each element in delay in long_filter_high_3800() 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: pEwaEktxFnGz ~1000 -> 930 cycles Signed-off-by: Michael Niedermayer --- libavcodec/apedec.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c index c08d13d6c2..40cd78a991 100644 --- a/libavcodec/apedec.c +++ b/libavcodec/apedec.c @@ -944,7 +944,7 @@ static void long_filter_high_3800(int32_t *buffer, int order, int shift, int len { int i, j; int32_t dotprod, sign; - int32_t coeffs[256], delay[256]; + int32_t coeffs[256], delay[256+256], *delayp = delay; if (order >= length) return; @@ -956,13 +956,16 @@ static void long_filter_high_3800(int32_t *buffer, int order, int shift, int len dotprod = 0; sign = APESIGN(buffer[i]); for (j = 0; j < order; j++) { - dotprod += delay[j] * (unsigned)coeffs[j]; - coeffs[j] += ((delay[j] >> 31) | 1) * sign; + dotprod += delayp[j] * (unsigned)coeffs[j]; + coeffs[j] += ((delayp[j] >> 31) | 1) * sign; } buffer[i] -= (unsigned)(dotprod >> shift); - for (j = 0; j < order - 1; j++) - delay[j] = delay[j + 1]; - delay[order - 1] = buffer[i]; + delayp ++; + delayp[order - 1] = buffer[i]; + if (delayp - delay == 256) { + memcpy(delay, delayp, sizeof(*delay)*256); + delayp = delay; + } } } From patchwork Sun Apr 23 22:32:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 41305 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dca6:b0:f3:34fa:f187 with SMTP id ky38csp1041139pzb; Sun, 23 Apr 2023 15:33:07 -0700 (PDT) X-Google-Smtp-Source: AKy350Yz/VTVZZy0xHs9NfzqNpbwPa0G0NDoqVjid+Bpj8zy6IbLzcXeXJWaUJ0n4V3lTxzgJ6zT X-Received: by 2002:a17:907:6d18:b0:953:87bf:3caa with SMTP id sa24-20020a1709076d1800b0095387bf3caamr10820501ejc.22.1682289187462; Sun, 23 Apr 2023 15:33:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682289187; cv=none; d=google.com; s=arc-20160816; b=ijDWl+afP0mr9zHovPrS46EKETzH9oWhU0Ztr6xcNeTPtTfiBnP+fH3Js/zreloFB1 BNuRh/OxMSpY5hMjXcamZYVAyULP0jNdsovIeaxb9nmkTke4u+JJ0pJdX9JnR9JxHGNi CQd9N9b23Xp1P7poQQYpZqkJ0XLz5L6wLrQs6GYUmUt1FVPYAjqAVQdlyUbEO8SJCgWQ 9ynmKsTPKY+DSO4qi4J/pWnPPUA28azdiShh7LEqi6xQEBbdN+YYwRger9e91wefzS79 3Orzy4UyrBQSKic9JLyXTKrCaslupyU3uLVRkCh4Vpzn4vU1bDVjkJHf6qAb1rZ4HcQ7 eeoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:delivered-to; bh=tzetcmm27LSISqkgPZfjk3osnvd1jSYMJiD5rVpJv8I=; b=SoCFpCBediSx2RFb01ZoIj/9Y0yjfN2c9A1rCyluTEbZr9CeGbIyBk419NGOKAzNbA WBKjyNgXP5zTu0ZbUSI9eU4bV8IQMhM6RZQp53gcdzJQpyWKUMRICAk8dFL245XcHaK/ 1A4LMDnD3q2qoJ99C6VXac3fWVrMTcLbPTWlLfSB7mgA4G1uY3HhIvBpKZqcKhQW0lFs /iTsIPPbVf+Pjs8lN9zaLmnHdN1+TySAbkAUDod7VRc6m03dcS2NocGG1qnlvfY9o+zB pM26sgrF0tVbSZB7CRaw1eft7Kl3SQhdcp04lvlYhKHfxAvR8zBhiMj03Xkx0b1Jtbhn QAow== ARC-Authentication-Results: i=1; mx.google.com; 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 uz17-20020a170907119100b0094f4a88b558si3575002ejb.456.2023.04.23.15.33.07; Sun, 23 Apr 2023 15:33:07 -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; 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 7917F68BF8A; Mon, 24 Apr 2023 01:32:48 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net [217.70.183.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 94DA568B103 for ; Mon, 24 Apr 2023 01:32:40 +0300 (EEST) Received: (Authenticated sender: michael@niedermayer.cc) by mail.gandi.net (Postfix) with ESMTPSA id B69CD240004 for ; Sun, 23 Apr 2023 22:32:39 +0000 (UTC) From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Mon, 24 Apr 2023 00:32:33 +0200 Message-Id: <20230423223236.375-3-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230423223236.375-1-michael@niedermayer.cc> References: <20230423223236.375-1-michael@niedermayer.cc> Subject: [FFmpeg-devel] [PATCH 3/6] avcodec/apedec: Factor constant sign out of loop in long_filter_high_3800() 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: qnELdh2pqSJN 930 -> 850 cycles Signed-off-by: Michael Niedermayer --- libavcodec/apedec.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c index 40cd78a991..772636afde 100644 --- a/libavcodec/apedec.c +++ b/libavcodec/apedec.c @@ -955,9 +955,20 @@ static void long_filter_high_3800(int32_t *buffer, int order, int shift, int len for (i = order; i < length; i++) { dotprod = 0; sign = APESIGN(buffer[i]); - for (j = 0; j < order; j++) { - dotprod += delayp[j] * (unsigned)coeffs[j]; - coeffs[j] += ((delayp[j] >> 31) | 1) * sign; + if (sign == 1) { + for (j = 0; j < order; j++) { + dotprod += delayp[j] * (unsigned)coeffs[j]; + coeffs[j] += (delayp[j] >> 31) | 1; + } + } else if (sign == -1) { + for (j = 0; j < order; j++) { + dotprod += delayp[j] * (unsigned)coeffs[j]; + coeffs[j] -= (delayp[j] >> 31) | 1; + } + } else { + for (j = 0; j < order; j++) { + dotprod += delayp[j] * (unsigned)coeffs[j]; + } } buffer[i] -= (unsigned)(dotprod >> shift); delayp ++; From patchwork Sun Apr 23 22:32:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 41306 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dca6:b0:f3:34fa:f187 with SMTP id ky38csp1041173pzb; Sun, 23 Apr 2023 15:33:16 -0700 (PDT) X-Google-Smtp-Source: AKy350aG1B2IZhF754QUWxH2cupEinioCVvg2/mDR0Ye/TVNYGU21s9FhE+F8Z0Csgw8jO9vGKQV X-Received: by 2002:a17:907:9285:b0:959:8cbe:63a5 with SMTP id bw5-20020a170907928500b009598cbe63a5mr2368467ejc.44.1682289195742; Sun, 23 Apr 2023 15:33:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682289195; cv=none; d=google.com; s=arc-20160816; b=myYajJdBU7cOlS95EzUmxJimN57rFYodhWYdc6igA88tsKcJ2PzFygO5PhEB1Z0r6o Rq4aWmhd+fKrCP+5S6kliG+ST3cDX3T2RmHSswp1JOgkd5edYpNzh2j4ZFZsut9jP80B RPn+zvHIGdnC7vmUaJp6WQyC9QXFFqN1XNLi+BPIbE8+hHXIck7gwov8cZnl/Cyp5xHf LTIqbFTE0o6BV7gW38ZIQPZyZuKe8EL9heY4KvJo8FrKsRNCXWkQ/0CQoeog+me8cfP1 vgSQXo6893Sk1gLCBzKd+JEnuqdCWLstSkL7562LZFGbVs6Dy8ehbriUpEiMStuukbyF 0z4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:delivered-to; bh=bONErZoc4pYa8WNgekDsVmfWg64qhXcJPMy7EB8VBZI=; b=iXCI1CdxdpLCQd+7nh1VLmy3xCRDgdrYmCHbcFhEScqENsxIWl8l/PXPDTewAEwX5Y CrGqs7r5pggFrGsO8HAS54ShXTCmXm8o8ufKpz5Fl3dnin0kD9DwKyogEdabgILwSdTQ Rbk38+aCmSlrfKYj1fXzUcSw9iRez8VhwbYe2EQ+GFh3VKbRpQBM9SNBttOLm+d/fJzd Pxl6+mLJcO/Wc3C+PiTDPdtedkB47ID7bxllt+ze2+Z6Xa2FHTTU/7ghz0vckb9MmNTV LYNhpJ15QUzWFhkNQxTbaSB1453H4YjMPo8Q5modPM8OJx8C894j850LWj7HggM2DFLt eURQ== ARC-Authentication-Results: i=1; mx.google.com; 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 g12-20020a170906868c00b0094ef883ccd1si4940883ejx.1028.2023.04.23.15.33.15; Sun, 23 Apr 2023 15:33:15 -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; 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 7B88F68BF44; Mon, 24 Apr 2023 01:32:49 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from relay10.mail.gandi.net (relay10.mail.gandi.net [217.70.178.230]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E4F966898AA for ; Mon, 24 Apr 2023 01:32:41 +0300 (EEST) Received: (Authenticated sender: michael@niedermayer.cc) by mail.gandi.net (Postfix) with ESMTPSA id 0DE4E240003 for ; Sun, 23 Apr 2023 22:32:40 +0000 (UTC) From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Mon, 24 Apr 2023 00:32:34 +0200 Message-Id: <20230423223236.375-4-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230423223236.375-1-michael@niedermayer.cc> References: <20230423223236.375-1-michael@niedermayer.cc> Subject: [FFmpeg-devel] [PATCH 4/6] tools/target_dec_fuzzer: Adjust threshold for APE 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: n4VTIIsCEab+ Fixes: Timeout Fixes: 57889/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_APE_fuzzer-5262308950802432 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer --- tools/target_dec_fuzzer.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/target_dec_fuzzer.c b/tools/target_dec_fuzzer.c index f059ddb4c7..87a9f6eb17 100644 --- a/tools/target_dec_fuzzer.c +++ b/tools/target_dec_fuzzer.c @@ -211,6 +211,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { case AV_CODEC_ID_AASC: maxpixels /= 1024; break; case AV_CODEC_ID_AGM: maxpixels /= 1024; break; case AV_CODEC_ID_ANM: maxpixels /= 1024; break; + case AV_CODEC_ID_APE: maxsamples /= 16384; break; case AV_CODEC_ID_ARBC: maxpixels /= 1024; break; case AV_CODEC_ID_ARGO: maxpixels /= 1024; break; case AV_CODEC_ID_BETHSOFTVID: maxpixels /= 8192; break; From patchwork Sun Apr 23 22:32:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 41307 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dca6:b0:f3:34fa:f187 with SMTP id ky38csp1041208pzb; Sun, 23 Apr 2023 15:33:24 -0700 (PDT) X-Google-Smtp-Source: AKy350acHx4ER1AXUVAJ3BphbkbUlsabM05p/CT2b6ebtNqNlO2w9VrxuomQcv5UfoakcOLZheTH X-Received: by 2002:aa7:df0c:0:b0:506:925a:c224 with SMTP id c12-20020aa7df0c000000b00506925ac224mr8779369edy.38.1682289204581; Sun, 23 Apr 2023 15:33:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682289204; cv=none; d=google.com; s=arc-20160816; b=aj2VvePUXbxDznA/NyxZbCokn8AcL6XHToO+B5PSh2jxa//gQJW9Tt6mucmuwErny9 lDcqaninD0K3brzoDe+7fsCkjwz+E7U+GSX6hoKx7HBpIfE3j6ixTO6udCxaxIflPaVM mOdU06JOO5Ctc8C2i51M00m8E1elq1AtZr+zCRVxzrNeH1quRihmcnCRXDmQv/r9esvY smTTVQdjWOUBXOG0vOZFRpmKeW0GJ6pDgLI1NjynUIgl+v6j/YioF4pqkX4uZyoxQQ1t Cndht70/dEcDUhwiMm3kx6zK/RDez9an+vLQYzemuH98YR74ThLHM4cW83in+0iHRtkF oprA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:delivered-to; bh=ETTjrTZtjSspnJqxSJFYDhVKOruNd92t3ofZzSMrJBM=; b=ZZ1w3iHpj/rFE7BkVm3HiIeDDnbdAjPiY5h9lFBRgii7BTPbh+wYUXfyZVfF4D9zZE 41o7X8BU+AIybAbMoun3XV/U2o26/9I2Q5kkmweZZJBLbKIuysr1pvmxM2ulIfR52vaI O1rBblt4BmqXtU4mBSKzeDaXZqObDfLNcLiOqZRUUFH0fnd3t76Gwb3KKV836Ez/L8dS 5o5Q9TOg57CirK69mD9WJWb4zsdfAOr9FvKg3JZZ2diaudYu1CSdZIWCr0D9yMRKhtcI rFyd+lTGN1jldETj0cmjooFE5Noj5YDtokgoMfJKp0jmeEPG7nHx7ei4QpaGdu5sqYfG 6Y4w== ARC-Authentication-Results: i=1; mx.google.com; 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 c11-20020aa7c98b000000b004fc43a04debsi4615719edt.294.2023.04.23.15.33.24; Sun, 23 Apr 2023 15:33:24 -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; 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 7F27568BF91; Mon, 24 Apr 2023 01:32:50 +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 8152268BF75 for ; Mon, 24 Apr 2023 01:32:42 +0300 (EEST) Received: (Authenticated sender: michael@niedermayer.cc) by mail.gandi.net (Postfix) with ESMTPSA id CF5FFE0003 for ; Sun, 23 Apr 2023 22:32:41 +0000 (UTC) From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Mon, 24 Apr 2023 00:32:35 +0200 Message-Id: <20230423223236.375-5-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230423223236.375-1-michael@niedermayer.cc> References: <20230423223236.375-1-michael@niedermayer.cc> Subject: [FFmpeg-devel] [PATCH 5/6] avcodec/cavsdec: Check bits left before picture allocation 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: U7/Xw9TY+TXH Fixes: Timeout Fixes: 57893/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CAVS_fuzzer-5091726540013568 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer --- libavcodec/cavsdec.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavcodec/cavsdec.c b/libavcodec/cavsdec.c index b1fa9a981d..37071dfbc7 100644 --- a/libavcodec/cavsdec.c +++ b/libavcodec/cavsdec.c @@ -1020,6 +1020,9 @@ static int decode_pic(AVSContext *h) skip_bits(&h->gb, 1); //marker_bit } + if (get_bits_left(&h->gb) < 23) + return AVERROR_INVALIDDATA; + ret = ff_get_buffer(h->avctx, h->cur.f, h->cur.f->pict_type == AV_PICTURE_TYPE_B ? 0 : AV_GET_BUFFER_FLAG_REF); if (ret < 0) From patchwork Sun Apr 23 22:32:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 41308 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dca6:b0:f3:34fa:f187 with SMTP id ky38csp1041265pzb; Sun, 23 Apr 2023 15:33:33 -0700 (PDT) X-Google-Smtp-Source: AKy350ZhlMb5lIYqH5qeceCDrKGeVdfmud7DtMj02szBdek4kLPvLhwJ4WyxlHEGQbxlse5Bjs+9 X-Received: by 2002:aa7:de92:0:b0:504:a2c8:ea60 with SMTP id j18-20020aa7de92000000b00504a2c8ea60mr10146081edv.35.1682289213003; Sun, 23 Apr 2023 15:33:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682289212; cv=none; d=google.com; s=arc-20160816; b=ABWSOrPuSmzjYdzYdLHDQNaOMItifRnDX+kEicWi030Bs0dKEnwPL94hxYoQiga8K8 oux0Hb3JcN3TAuoJgOdLgv7RafeUUBAmrMNWLssn9P5ytlHDJUVfV5QSWmihOwF2G+rG KUpEwsSwlzorE6ghLiXQ9M9NcipBTDb9a7kpFhCRlsYZPNXqohRV/nmNnsGtE46vxTix 4JJMqyfk20gvRuuF3o9rMg3qlA6ktWanivHt73fC2F9njlwFMtjPEG9kWLCigpa58qyK 9Oo1P5Y+C2BkT5zCnC3g97VhgKWoGRt7nOWkiIl62xf18ujjup4LFTrv2+pVRPSrrZB0 asQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:delivered-to; bh=TmMhy0JNW6ihoJ52a2F3DOkeJhk+/LelCSZEAFXX9Ps=; b=IJEa3zMG+OqHZkvS8GsdhbMxxji6Z8lbgbzCW+WL4byIXMFwjFLs7rOq91OHmE1jD+ KM2wCCVE+lqPl7gp4UVabJY80K5eXtx6sNKaTaixaN82Tn21HTx1IW/BCs5BuU5laLMX 3ORvAq7pcluWQYVYPqUGBPwR0CuOGUr8Rbkv6CAXhimQr25jvAEaH4IMHoMwx9pdyXV7 rvfQK7rO/l+9RDDaX+ydqO9Kg3AOJQPsYEiUXLHAb/GBDzm5gZ7mkU/HmuvvLFsRc/kr kw+nKJJEshdruILF+jRZwdqod1+xIyrt+w8CC8KbCRx2jTr/JLMd48rRLKm81/d7nbmy /8/Q== ARC-Authentication-Results: i=1; mx.google.com; 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 q10-20020aa7cc0a000000b005068286d9e8si7401064edt.509.2023.04.23.15.33.32; Sun, 23 Apr 2023 15:33:32 -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; 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 90AFD68BF95; Mon, 24 Apr 2023 01:32: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 44B1D68BF84 for ; Mon, 24 Apr 2023 01:32:43 +0300 (EEST) Received: (Authenticated sender: michael@niedermayer.cc) by mail.gandi.net (Postfix) with ESMTPSA id 9325DE0006 for ; Sun, 23 Apr 2023 22:32:42 +0000 (UTC) From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Mon, 24 Apr 2023 00:32:36 +0200 Message-Id: <20230423223236.375-6-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230423223236.375-1-michael@niedermayer.cc> References: <20230423223236.375-1-michael@niedermayer.cc> Subject: [FFmpeg-devel] [PATCH 6/6] avcodec/bonk: decode multiple passes in intlist_read() at once 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: FDkQuRpyBVkC This makes the worst case much faster Fixes: Timeout Fixes: 51363/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_BONK_fuzzer-5660734784143360 Fixes: 57957/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_BONK_fuzzer-5874095467397120 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer --- libavcodec/bonk.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/libavcodec/bonk.c b/libavcodec/bonk.c index 5f510e4910..4a00270392 100644 --- a/libavcodec/bonk.c +++ b/libavcodec/bonk.c @@ -155,6 +155,7 @@ static int intlist_read(BonkContext *s, int *buf, int entries, int base_2_part) int n_zeros = 0, step = 256, dominant = 0; int pos = 0, level = 0; BitCount *bits = s->bits; + int passes = 1; memset(buf, 0, entries * sizeof(*buf)); if (base_2_part) { @@ -216,24 +217,28 @@ static int intlist_read(BonkContext *s, int *buf, int entries, int base_2_part) x = 0; n_zeros = 0; for (i = 0; n_zeros < entries; i++) { + if (x >= max_x) + return AVERROR_INVALIDDATA; + if (pos >= entries) { pos = 0; - level += 1 << low_bits; + level += passes << low_bits; + passes = 1; + if (bits[x].bit && bits[x].count > entries - n_zeros) + passes = bits[x].count / (entries - n_zeros); } if (level > 1 << 16) return AVERROR_INVALIDDATA; - if (x >= max_x) - return AVERROR_INVALIDDATA; - if (buf[pos] >= level) { if (bits[x].bit) - buf[pos] += 1 << low_bits; + buf[pos] += passes << low_bits; else n_zeros++; - bits[x].count--; + av_assert1(bits[x].count >= passes); + bits[x].count -= passes; x += bits[x].count == 0; }