Uh oh!
There was an error while loading. Please reload this page.
[pull] master from bitcoin:master - #1827
Merged
Merged
Conversation
4a12773 test: cover DERSIG rejects a non-compound signature type (ViniciusCestarii) 86c7fb9 test: cover OP_16 does not count towards the opcode limit (ViniciusCestarii) 331bf79 test: cover OP_WITHIN must pop all 3 elements (ViniciusCestarii) 3bb87bc test: cover OP_FROMALTSTACK must pop the altstack (ViniciusCestarii) Pull request description: Kills some live mutants on interpreter.cpp that affect consensus found by https://bitcoincore.space. They are: <details> <summary><a href="https://bitcoincore.space/src/script/interpreter.cpp#3951">interpreter.cpp#3951</a>: <code>OP_FROMALTSTACK</code>: removed <code>popstack(altstack)</code></summary> ```diff diff --git a/src/script/interpreter.cpp b/src/script/interpreter.cpp index 98b16ec..68265d20b5 100644 --- a/src/script/interpreter.cpp +++ b/src/script/interpreter.cpp @@ -698,7 +698,7 @@ bool EvalScript(std::vector<std::vector<unsigned char> >& stack, const CScript& if (altstack.size() < 1) return set_error(serror, SCRIPT_ERR_INVALID_ALTSTACK_OPERATION); stack.push_back(altstacktop(-1)); - popstack(altstack); + } break; ``` </details> <details> <summary><a href="https://bitcoincore.space/src/script/interpreter.cpp#4084">interpreter.cpp#4084</a>: <code>OP_WITHIN</code>: removed one <code>popstack(stack)</code></summary> ```diff diff --git a/src/script/interpreter.cpp b/src/script/interpreter.cpp index 98b16ec..874cf5e1cf 100644 --- a/src/script/interpreter.cpp +++ b/src/script/interpreter.cpp @@ -1018,7 +1018,7 @@ bool EvalScript(std::vector<std::vector<unsigned char> >& stack, const CScript& CScriptNum bn2(stacktop(-2), fRequireMinimal); CScriptNum bn3(stacktop(-1), fRequireMinimal); bool fValue = (bn2 <= bn1 && bn1 < bn3); - popstack(stack); + popstack(stack); popstack(stack); stack.push_back(fValue ? vchTrue : vchFalse); ``` </details> <details> <summary><a href="https://bitcoincore.space/src/script/interpreter.cpp#3883">interpreter.cpp#3883</a>: opcode limit: <code>opcode > OP_16</code> → <code>opcode >= OP_16</code></summary> ```diff diff --git a/src/script/interpreter.cpp b/src/script/interpreter.cpp index 98b16ec..e985643606 100644 --- a/src/script/interpreter.cpp +++ b/src/script/interpreter.cpp @@ -459,7 +459,7 @@ bool EvalScript(std::vector<std::vector<unsigned char> >& stack, const CScript& if (sigversion == SigVersion::BASE || sigversion == SigVersion::WITNESS_V0) { // Note how OP_RESERVED does not count towards the opcode limit. - if (opcode > OP_16 && ++nOpCount > MAX_OPS_PER_SCRIPT) { + if (opcode >= OP_16 && ++nOpCount > MAX_OPS_PER_SCRIPT) { return set_error(serror, SCRIPT_ERR_OP_COUNT); } } ``` </details> <details> <summary><a href="https://bitcoincore.space/src/script/interpreter.cpp#3808">interpreter.cpp#3808</a>: <code>IsValidSignatureEncoding</code>: compound type check returns <code>true</code></summary> ```diff diff --git a/src/script/interpreter.cpp b/src/script/interpreter.cpp index 98b16ec..b613a6ac19 100644 --- a/src/script/interpreter.cpp +++ b/src/script/interpreter.cpp @@ -133,7 +133,7 @@ bool static IsValidSignatureEncoding(const std::vector<unsigned char> &sig) { if (sig.size() > 73) return false; // A signature is of type 0x30 (compound). - if (sig[0] != 0x30) return false; + if (sig[0] != 0x30) return true; // Make sure the length covers the entire signature. if (sig[1] != sig.size() - 3) return false; ``` </details> Recommend reviewing per commit. ACKs for top commit: instagibbs: ACK 4a12773 brunoerg: ACK 4a12773 jeanpablojp: tACK 4a12773 Tree-SHA512: 5f53c733d11cb5d645f420d90ab626f894ef0bb155d01b9de0cae502109b2eaa46c072797d08df115da7a8738f01f31212a207a4d0e6f782128beb37332cf46e
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )