From 085f4dfa76157ddda70f06a023af37806f4b0270 Mon Sep 17 00:00:00 2001 From: MarcoFalke Date: Fri, 25 Dec 2020 07:41:09 +0100 Subject: [PATCH] Merge #20761: fuzz: Check that NULL_DATA is unspendable fa2630328687645fbc7dd1ea46aac32514025715 fuzz: Check that NULL_DATA is unspendable (MarcoFalke) Pull request description: * Every script of type NULL_DATA must be unspendable * The only know types of unspendable scripts are NULL_DATA and certain NONSTANDARD scripts ACKs for top commit: sipa: utACK fa2630328687645fbc7dd1ea46aac32514025715 Tree-SHA512: 8297fbacf32b4868b12accc1c052d352d02d96540a1fc883de9d04a3df8734116deecc33046495c9a3af6d79fec7f8d63afbfa5e401a2ca8d7c70f0f13735c0d --- src/test/fuzz/script.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/test/fuzz/script.cpp b/src/test/fuzz/script.cpp index 8a6c5added219..740b1f9969e99 100644 --- a/src/test/fuzz/script.cpp +++ b/src/test/fuzz/script.cpp @@ -69,6 +69,13 @@ FUZZ_TARGET_INIT(script, initialize_script) TxoutType which_type; (void)IsStandard(script, which_type); + if (which_type == TxoutType::NULL_DATA) { + assert(script.IsUnspendable()); + } + if (script.IsUnspendable()) { + assert(which_type == TxoutType::NULL_DATA || + which_type == TxoutType::NONSTANDARD); + } (void)RecursiveDynamicUsage(script); @@ -77,7 +84,6 @@ FUZZ_TARGET_INIT(script, initialize_script) (void)script.IsPayToScriptHash(); (void)script.IsPushOnly(); - (void)script.IsUnspendable(); (void)script.GetSigOpCount(/* fAccurate= */ false); (void)FormatScript(script);