Browse Source

Replace uint256(1) with static constant

SignatureHash and its test function SignatureHashOld
return uint256(1) as a special error signaling value.
Return a local static constant with the same value instead.
0.13
Wladimir J. van der Laan 10 years ago
parent
commit
2eae3157f6
  1. 5
      src/script/interpreter.cpp
  2. 5
      src/test/sighash_tests.cpp

5
src/script/interpreter.cpp

@ -1030,16 +1030,17 @@ public:
uint256 SignatureHash(const CScript& scriptCode, const CTransaction& txTo, unsigned int nIn, int nHashType) uint256 SignatureHash(const CScript& scriptCode, const CTransaction& txTo, unsigned int nIn, int nHashType)
{ {
static const uint256 one("0000000000000000000000000000000000000000000000000000000000000001");
if (nIn >= txTo.vin.size()) { if (nIn >= txTo.vin.size()) {
// nIn out of range // nIn out of range
return 1; return one;
} }
// Check for invalid use of SIGHASH_SINGLE // Check for invalid use of SIGHASH_SINGLE
if ((nHashType & 0x1f) == SIGHASH_SINGLE) { if ((nHashType & 0x1f) == SIGHASH_SINGLE) {
if (nIn >= txTo.vout.size()) { if (nIn >= txTo.vout.size()) {
// nOut out of range // nOut out of range
return 1; return one;
} }
} }

5
src/test/sighash_tests.cpp

@ -24,10 +24,11 @@ extern Array read_json(const std::string& jsondata);
// Old script.cpp SignatureHash function // Old script.cpp SignatureHash function
uint256 static SignatureHashOld(CScript scriptCode, const CTransaction& txTo, unsigned int nIn, int nHashType) uint256 static SignatureHashOld(CScript scriptCode, const CTransaction& txTo, unsigned int nIn, int nHashType)
{ {
static const uint256 one("0000000000000000000000000000000000000000000000000000000000000001");
if (nIn >= txTo.vin.size()) if (nIn >= txTo.vin.size())
{ {
printf("ERROR: SignatureHash() : nIn=%d out of range\n", nIn); printf("ERROR: SignatureHash() : nIn=%d out of range\n", nIn);
return 1; return one;
} }
CMutableTransaction txTmp(txTo); CMutableTransaction txTmp(txTo);
@ -58,7 +59,7 @@ uint256 static SignatureHashOld(CScript scriptCode, const CTransaction& txTo, un
if (nOut >= txTmp.vout.size()) if (nOut >= txTmp.vout.size())
{ {
printf("ERROR: SignatureHash() : nOut=%d out of range\n", nOut); printf("ERROR: SignatureHash() : nOut=%d out of range\n", nOut);
return 1; return one;
} }
txTmp.vout.resize(nOut+1); txTmp.vout.resize(nOut+1);
for (unsigned int i = 0; i < nOut; i++) for (unsigned int i = 0; i < nOut; i++)

Loading…
Cancel
Save