diff options
| author | Gavin Andresen <[email protected]> | 2012-11-21 13:58:10 -0500 |
|---|---|---|
| committer | Gavin Andresen <[email protected]> | 2012-11-21 13:58:10 -0500 |
| commit | a91efb2d8d2791f324705e24909af51640ca73e4 (patch) | |
| tree | 2dd90dcc41c3d617f68e3da3c5568cc50faef3b3 /src/script.cpp | |
| parent | Merge pull request #2022 from Diapolo/fix_#2018 (diff) | |
| download | discoin-a91efb2d8d2791f324705e24909af51640ca73e4.tar.xz discoin-a91efb2d8d2791f324705e24909af51640ca73e4.zip | |
Add assert and comment for subtle pay-to-script-hash logic
Diffstat (limited to 'src/script.cpp')
| -rw-r--r-- | src/script.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/script.cpp b/src/script.cpp index a40ae5b1d..f65508aac 100644 --- a/src/script.cpp +++ b/src/script.cpp @@ -1658,6 +1658,11 @@ bool VerifyScript(const CScript& scriptSig, const CScript& scriptPubKey, const C if (!scriptSig.IsPushOnly()) // scriptSig must be literals-only return false; // or validation fails + // stackCopy cannot be empty here, because if it was the + // P2SH HASH <> EQUAL scriptPubKey would be evaluated with + // an empty stack and the EvalScript above would return false. + assert(!stackCopy.empty()); + const valtype& pubKeySerialized = stackCopy.back(); CScript pubKey2(pubKeySerialized.begin(), pubKeySerialized.end()); popstack(stackCopy); |