Add assert and comment for subtle pay-to-script-hash logic

This commit is contained in:
Gavin Andresen 2012-11-21 13:58:10 -05:00
parent 4725e96a3a
commit a91efb2d8d

View file

@ -1658,6 +1658,11 @@ bool VerifyScript(const CScript& scriptSig, const CScript& scriptPubKey, const C
if (!scriptSig.IsPushOnly()) // scriptSig must be literals-only if (!scriptSig.IsPushOnly()) // scriptSig must be literals-only
return false; // or validation fails 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(); const valtype& pubKeySerialized = stackCopy.back();
CScript pubKey2(pubKeySerialized.begin(), pubKeySerialized.end()); CScript pubKey2(pubKeySerialized.begin(), pubKeySerialized.end());
popstack(stackCopy); popstack(stackCopy);