diff options
author | fanquake <fanquake@gmail.com> | 2023-11-26 12:17:18 +0000 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2023-11-26 12:22:50 +0000 |
commit | 5f9fd11680af43b0d0d80a6aa4f315aa04afeac4 (patch) | |
tree | 9110c20ab3b066ee24aad2e9e39dfb25721fa570 /src/test | |
parent | b5a271334ca81a6adcb1c608d85c83621a9eae47 (diff) | |
parent | faf1fb207fb6e9a12c864074f8c40d5922d93ff4 (diff) |
Merge bitcoin/bitcoin#28931: fuzz: Limit fuzz buffer size in script_flags target
faf1fb207fb6e9a12c864074f8c40d5922d93ff4 Fix IWYU for the script_flags fuzz target (MarcoFalke)
fa71285b7301b2993bcc68525649716afbd9abf8 fuzz: Limit fuzz buffer size in script_flags target (MarcoFalke)
fa6b87b9ee661d8ef4ec244d230ebdeb7d1841a0 fuzz: CDataStream -> DataStream in script_flags (MarcoFalke)
Pull request description:
Most fuzz targets have an upper limit on the buffer size to avoid excessive runtime. Do the same for `script_flags` to avoid timeouts such as https://github.com/bitcoin/bitcoin/issues/28812#issuecomment-1824696971
Also, fix iwyu. Also, remove legacy `CDataStream`.
ACKs for top commit:
dergoegge:
ACK faf1fb207fb6e9a12c864074f8c40d5922d93ff4
brunoerg:
utACK faf1fb207fb6e9a12c864074f8c40d5922d93ff4
Tree-SHA512: 9301917b353f7409e448b6fd3635de19330856e0742431db5ef04e62873501b5b4cd6cb78ad81ada2747fa2bdae033115b5951d10489dd5d0d320426c8b96bee
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/fuzz/script_flags.cpp | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/test/fuzz/script_flags.cpp b/src/test/fuzz/script_flags.cpp index 3b8f5c068d..accb32f1cc 100644 --- a/src/test/fuzz/script_flags.cpp +++ b/src/test/fuzz/script_flags.cpp @@ -3,25 +3,22 @@ // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include <consensus/amount.h> -#include <pubkey.h> +#include <primitives/transaction.h> #include <script/interpreter.h> +#include <serialize.h> #include <streams.h> +#include <test/fuzz/fuzz.h> #include <test/util/script.h> -#include <version.h> -#include <test/fuzz/fuzz.h> +#include <cassert> +#include <ios> +#include <utility> +#include <vector> FUZZ_TARGET(script_flags) { - CDataStream ds(buffer, SER_NETWORK, INIT_PROTO_VERSION); - try { - int nVersion; - ds >> nVersion; - ds.SetVersion(nVersion); - } catch (const std::ios_base::failure&) { - return; - } - + if (buffer.size() > 100'000) return; + DataStream ds{buffer}; try { const CTransaction tx(deserialize, TX_WITH_WITNESS, ds); |