Skip to content

[pull] master from bitcoin:master - #1827

Merged
pull[bot] merged 5 commits into
All-Blockchains:masterfrom
bitcoin:master
Aug 31, 2026
Merged

[pull] master from bitcoin:master#1827
pull[bot] merged 5 commits into
All-Blockchains:masterfrom
bitcoin:master

Conversation

@pull

@pullpullBot commented Aug 31, 2026

Copy link
Copy Markdown

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 : )

ViniciusCestariiand others added 5 commits August 21, 2026 10:44
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
@pullpullBot locked and limited conversation to collaborators Aug 31, 2026
@pull
pullBot merged commit d2e24e9 into All-Blockchains:masterAug 31, 2026
0 of 25 checks passed
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ViniciusCestarii@fanquake