Browse Source

Merge pull request #2114 from sipa/strictstrict

Make IsCanonicalScript() check the hash type more thoroughly
miguelfreitas
Gavin Andresen 12 years ago
parent
commit
c429f2b062
  1. 3
      src/script.cpp

3
src/script.cpp

@ -278,7 +278,8 @@ bool IsCanonicalSignature(const valtype &vchSig) {
return error("Non-canonical signature: too short"); return error("Non-canonical signature: too short");
if (vchSig.size() > 73) if (vchSig.size() > 73)
return error("Non-canonical signature: too long"); return error("Non-canonical signature: too long");
if (vchSig[vchSig.size() - 1] & 0x7C) unsigned char nHashType = vchSig[vchSig.size() - 1] & (~(SIGHASH_ANYONECANPAY));
if (nHashType < SIGHASH_ALL || nHashType > SIGHASH_SINGLE)
return error("Non-canonical signature: unknown hashtype byte"); return error("Non-canonical signature: unknown hashtype byte");
if (vchSig[0] != 0x30) if (vchSig[0] != 0x30)
return error("Non-canonical signature: wrong type"); return error("Non-canonical signature: wrong type");

Loading…
Cancel
Save