aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2023-11-26 12:17:18 +0000
committerfanquake <fanquake@gmail.com>2023-11-26 12:22:50 +0000
commit5f9fd11680af43b0d0d80a6aa4f315aa04afeac4 (patch)
tree9110c20ab3b066ee24aad2e9e39dfb25721fa570 /src/test
parentb5a271334ca81a6adcb1c608d85c83621a9eae47 (diff)
parentfaf1fb207fb6e9a12c864074f8c40d5922d93ff4 (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.cpp21
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);