Browse Source

Fix out-of-bounds read noticed by Ricardo Correia

Sizeof() returned the size of a pointer instead of the size of the buffer.
Fixes issue #1924.
0.8
Wladimir J. van der Laan 12 years ago
parent
commit
4fbad9124e
  1. 5
      src/main.cpp

5
src/main.cpp

@ -3745,9 +3745,6 @@ public:
} }
}; };
const char* pszDummy = "\0\0";
CScript scriptDummy(std::vector<unsigned char>(pszDummy, pszDummy + sizeof(pszDummy)));
CBlock* CreateNewBlock(CReserveKey& reservekey) CBlock* CreateNewBlock(CReserveKey& reservekey)
{ {
CBlockIndex* pindexPrev = pindexBest; CBlockIndex* pindexPrev = pindexBest;
@ -3981,7 +3978,7 @@ CBlock* CreateNewBlock(CReserveKey& reservekey)
pblock->UpdateTime(pindexPrev); pblock->UpdateTime(pindexPrev);
pblock->nBits = GetNextWorkRequired(pindexPrev, pblock.get()); pblock->nBits = GetNextWorkRequired(pindexPrev, pblock.get());
pblock->nNonce = 0; pblock->nNonce = 0;
pblock->vtx[0].vin[0].scriptSig = scriptDummy; pblock->vtx[0].vin[0].scriptSig = CScript() << OP_0 << OP_0;
CBlockIndex indexDummy(*pblock); CBlockIndex indexDummy(*pblock);
indexDummy.pprev = pindexPrev; indexDummy.pprev = pindexPrev;

Loading…
Cancel
Save