From 5d2e22437b22e7465ae4be64069443bcc1769dc9 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Sat, 27 Feb 2021 20:26:54 -0800 Subject: [PATCH] Don't nuke witness data when signing fails --- src/script/sign.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/script/sign.cpp b/src/script/sign.cpp index fe5cec89b0..d711f8997b 100644 --- a/src/script/sign.cpp +++ b/src/script/sign.cpp @@ -217,7 +217,6 @@ bool ProduceSignature(const SigningProvider& provider, const BaseSignatureCreato bool solved = SignStep(provider, creator, fromPubKey, result, whichType, SigVersion::BASE, sigdata); bool P2SH = false; CScript subscript; - sigdata.scriptWitness.stack.clear(); if (solved && whichType == TxoutType::SCRIPTHASH) { @@ -254,6 +253,7 @@ bool ProduceSignature(const SigningProvider& provider, const BaseSignatureCreato sigdata.witness = true; } + if (!sigdata.witness) sigdata.scriptWitness.stack.clear(); if (P2SH) { result.push_back(std::vector(subscript.begin(), subscript.end())); }