Make OP_DETERMINISTICRANDOM endian-safe

Fixing a TODO from elements-0.14.1.

Signed-off-by: Steven Roose <steven@stevenroose.org>
This commit is contained in:
Steven Roose 2019-01-14 11:08:14 +00:00
parent 1967112d98
commit a09e63fdad
No known key found for this signature in database
GPG key ID: 7FC91380BB4CE800

View file

@ -1374,8 +1374,8 @@ bool EvalScript(std::vector<std::vector<unsigned char> >& stack, const CScript&
hasher.Write(vchSeed.data(), vchSeed.size());
do {
if (nHashIndex >= 3) {
//TODO this isn't endian safe
CSHA256(hasher).Write((const unsigned char*)&nCounter, sizeof(nCounter)).Finalize(vchHash.data());
uint64_t le_counter = htole64(nCounter);
CSHA256(hasher).Write((const unsigned char*)&le_counter, sizeof(nCounter)).Finalize(vchHash.data());
nHashIndex = 0;
nCounter++;
}