mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-07-01 11:11:15 +02:00
CAddrMan::Deserialize handle corrupt serializations better.
This commit is contained in:
@ -350,6 +350,14 @@ public:
|
|||||||
nUBuckets ^= (1 << 30);
|
nUBuckets ^= (1 << 30);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (nNew > ADDRMAN_NEW_BUCKET_COUNT * ADDRMAN_BUCKET_SIZE) {
|
||||||
|
throw std::ios_base::failure("Corrupt CAddrMan serialization, nNew exceeds limit.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nTried > ADDRMAN_TRIED_BUCKET_COUNT * ADDRMAN_BUCKET_SIZE) {
|
||||||
|
throw std::ios_base::failure("Corrupt CAddrMan serialization, nTried exceeds limit.");
|
||||||
|
}
|
||||||
|
|
||||||
// Deserialize entries from the new table.
|
// Deserialize entries from the new table.
|
||||||
for (int n = 0; n < nNew; n++) {
|
for (int n = 0; n < nNew; n++) {
|
||||||
CAddrInfo &info = mapInfo[n];
|
CAddrInfo &info = mapInfo[n];
|
||||||
|
Reference in New Issue
Block a user