From patchwork Fri Feb 25 21:46:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 34521 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:d078:0:0:0:0 with SMTP id x24csp540086nkx; Fri, 25 Feb 2022 13:47:06 -0800 (PST) X-Google-Smtp-Source: ABdhPJxZoqyyHGm2yi6UXhdcSHz6tm/VhIhWeg4Lyclc8Qj6Sc5KIYoIjnWsymrfwizPwxOe7YYc X-Received: by 2002:a50:aac8:0:b0:410:ae77:c484 with SMTP id r8-20020a50aac8000000b00410ae77c484mr8824703edc.431.1645825626557; Fri, 25 Feb 2022 13:47:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645825626; cv=none; d=google.com; s=arc-20160816; b=z/bN5xRmzplK44UVYZ3X1lio8sY/36PojV/YP/jyDQZU1h0w3QJmRTESSharJ2QKCP HiFb0KLb1uSYbNzDE37T3NIoTx1WP4NaUkZX7vZKYL2eD9UyV4jhwl/sorO/C765/zXc /Jst2pduwgNWK+1VCvBQ922kk6KJiOy3mfup2vlDJYCCC4yoN4G7Xo2putijwwPcT2tN LhL6ULEE913wiNdTcxx97zHhtcNEDWdg9bE2TBz/7+aSlq5v1Bt6wkLtwVLKHkvI5ZN7 9uZo+3TM4PJjjdX/7R9RiHm/AZVdqdGv6qxJ0qk0XXAzcvExyffSHJuY/mt7G2lwxrP0 QwXQ== 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:message-id:date:to:from :dkim-signature:delivered-to; bh=dwgH0SFdmy8xRSYyDmXm+ZUWAgP0ktJCAdDDwiTSOuE=; b=iRC+zl3lBUnH6FRyfbPg2IHsTDANzqGeXsBSirldUc1RIa3KeSPoy4GS2wUvdvObxc GIkBx22wT5tU0rlbbzZcN1Vb7NM1Tp5KhwZkwnx6OMky1A8olyw9PHVV1G2VU42Y/SnE kDRTYGf+KtNPuAYdmhIGiPbcnc8zM0RTGbycxfJ43bT6y8jnvhwmkxC/vIrpc8duToj6 iPzo6nbjKCRHgjk9YBIb4zgZ3thieyl435CZo4OvXE5L4ddq5Bm4KFEUJWgCVm8InmJr fODWRVlkRo4GYp0BOaPJqgu18OEEiCufRU1IpXxEKPgCqGKjCJQwcdp3N5qtliYNtL+x eXIg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=eQWlBTfs; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id cc28-20020a0564021b9c00b00410f198b4e5si2656760edb.239.2022.02.25.13.47.05; Fri, 25 Feb 2022 13:47:06 -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=@gmail.com header.s=20210112 header.b=eQWlBTfs; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2B69068A126; Fri, 25 Feb 2022 23:47:02 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oo1-f45.google.com (mail-oo1-f45.google.com [209.85.161.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0B58168019F for ; Fri, 25 Feb 2022 23:46:55 +0200 (EET) Received: by mail-oo1-f45.google.com with SMTP id j7-20020a4ad6c7000000b0031c690e4123so8249269oot.11 for ; Fri, 25 Feb 2022 13:46:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=lllkLrB3paLJI3Azq1DWe4KHXO/uUvEFcekvFrV8jMQ=; b=eQWlBTfs+Q+hmRkbMMR8ow2F4ltcKDfzuVNdXvjQT/TmxIbkv7UYCNL58aWRT4i1Wm 1KuzjxVjvLojfa5T9RapMcikEDkkWwOvUL7HgCvGNnVg/J10bGAfMYLQQSUo6YCDyoDh EPDihE4O6fh/cnpmhPpZ7iHl4WYFo0M1bWO/FG32K8W8UfNwrLSiqc8FF+Ysva7DypPZ SN+QwJsUNR42aOBi36/56WIJbAeT5lbgQOIuPvXe7NjL9Vmjnrj9zUqlXNWw+Ox8yfjC yK41TqoTzqrC3cI/4pcrLT9azfDlXXxXtmwrZ+9WypaMK4iqYEO4UZIj6jYdI08bKdOp Znag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=lllkLrB3paLJI3Azq1DWe4KHXO/uUvEFcekvFrV8jMQ=; b=iKWJKUe8RB/ED4UcrjRiYVL81iU0y3lYqLiHOdrmiYpfz9Wqn+5HkXy0P/MQhJH7bh YJS/AdSl45eH2jaYV2xXotzcNXGaxLuejGlxZrLGf+uFbueOMkGiyfqIYTisJgQ/qHlM m6k5KP66IxR0vvJ87Z9c7GoA253df3U4+l2RPkmHKgeeu1J4Tx2hsnXQPrsWucTO+eJE zZRdwywahD6uxaNbMQ3DBOvPDgwNzFt8z6Uee55yfyzwxjPex9ujEcrvXNddw2eG50Sk TDAdy+p7i2fzVY/1D/NYyv8NDdZqgG0cQc2OsNlprCSCsFxQ6qDvLnjsIwUJwdPWlZSd 568A== X-Gm-Message-State: AOAM531TUmx+kh72fh6mIbZMzsYcBCEh/NVNukSlQ4RotBivocxm2lML BqobL3rai5e9tKB/cFMOgSLHJqiWdZsf8A== X-Received: by 2002:a05:6871:419c:b0:d6:e34d:b206 with SMTP id lc28-20020a056871419c00b000d6e34db206mr2365134oab.170.1645825612889; Fri, 25 Feb 2022 13:46:52 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a7-20020a4aae47000000b0031d17643eaasm1533427oon.22.2022.02.25.13.46.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Feb 2022 13:46:52 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 25 Feb 2022 18:46:30 -0300 Message-Id: <20220225214630.1689-1-jamrial@gmail.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2] tools/target_bsf_fuzzer: simplify the loop feeding packets to the filter 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: 18SxNPfZBMsJ And use a single AVPacket for the entire process. This more closely follows the suggested API usage in the doxy. Signed-off-by: James Almer --- tools/target_bsf_fuzzer.c | 41 +++++++++++++++------------------------ 1 file changed, 16 insertions(+), 25 deletions(-) diff --git a/tools/target_bsf_fuzzer.c b/tools/target_bsf_fuzzer.c index d6aaee3bd9..8ef9932690 100644 --- a/tools/target_bsf_fuzzer.c +++ b/tools/target_bsf_fuzzer.c @@ -43,7 +43,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { const uint8_t *last = data; const uint8_t *end = data + size; AVBSFContext *bsf = NULL; - AVPacket *in, *out; + AVPacket *pkt; uint64_t keyframes = 0; uint64_t flushpattern = -1; int res; @@ -118,9 +118,8 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { return 0; // Failure of av_bsf_init() does not imply that a issue was found } - in = av_packet_alloc(); - out = av_packet_alloc(); - if (!in || !out) + pkt = av_packet_alloc(); + if (!pkt) error("Failed memory allocation"); while (data < end) { @@ -133,11 +132,11 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { if (data + sizeof(fuzz_tag) > end) data = end; - res = av_new_packet(in, data - last); + res = av_new_packet(pkt, data - last); if (res < 0) error("Failed memory allocation"); - memcpy(in->data, last, data - last); - in->flags = (keyframes & 1) * AV_PKT_FLAG_DISCARD + (!!(keyframes & 2)) * AV_PKT_FLAG_KEY; + memcpy(pkt->data, last, data - last); + pkt->flags = (keyframes & 1) * AV_PKT_FLAG_DISCARD + (!!(keyframes & 2)) * AV_PKT_FLAG_KEY; keyframes = (keyframes >> 2) + (keyframes<<62); data += sizeof(fuzz_tag); last = data; @@ -146,28 +145,20 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { av_bsf_flush(bsf); flushpattern = (flushpattern >> 3) + (flushpattern << 61); - while (in->size) { - res = av_bsf_send_packet(bsf, in); - if (res < 0 && res != AVERROR(EAGAIN)) - break; - res = av_bsf_receive_packet(bsf, out); - if (res < 0) - break; - av_packet_unref(out); + res = av_bsf_send_packet(bsf, pkt); + if (res < 0) { + av_packet_unref(pkt); + continue; } - av_packet_unref(in); + while (av_bsf_receive_packet(bsf, pkt) >= 0) + av_packet_unref(pkt); } - res = av_bsf_send_packet(bsf, NULL); - while (!res) { - res = av_bsf_receive_packet(bsf, out); - if (res < 0) - break; - av_packet_unref(out); - } + av_bsf_send_packet(bsf, NULL); + while (av_bsf_receive_packet(bsf, pkt) >= 0) + av_packet_unref(pkt); - av_packet_free(&in); - av_packet_free(&out); + av_packet_free(&pkt); av_bsf_free(&bsf); return 0; }