Skip to content

Commit 6b76485

Browse files
committed
suggestions
1 parent e75dc6e commit 6b76485

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

dash/src/blockdata/block.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -476,8 +476,8 @@ mod tests {
476476
"010000004ddccd549d28f385ab457e98d1b11ce80bfea2c5ab93015ade4973e400000000bf4473e53794beae34e64fccc471dace6ae544180816f89591894e0f417a914cd74d6e49ffff001d323b3a7b0201000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0804ffff001d026e04ffffffff0100f2052a0100000043410446ef0102d1ec5240f0d061a4246c1bdef63fc3dbab7733052fbbf0ecd8f41fc26bf049ebb4f9527f374280259e7cfa99c48b0e3f39c51347a19a5819651503a5ac00000000010000000321f75f3139a013f50f315b23b0c9a2b6eac31e2bec98e5891c924664889942260000000049483045022100cb2c6b346a978ab8c61b18b5e9397755cbd17d6eb2fe0083ef32e067fa6c785a02206ce44e613f31d9a6b0517e46f3db1576e9812cc98d159bfdaf759a5014081b5c01ffffffff79cda0945903627c3da1f85fc95d0b8ee3e76ae0cfdc9a65d09744b1f8fc85430000000049483045022047957cdd957cfd0becd642f6b84d82f49b6cb4c51a91f49246908af7c3cfdf4a022100e96b46621f1bffcf5ea5982f88cef651e9354f5791602369bf5a82a6cd61a62501fffffffffe09f5fe3ffbf5ee97a54eb5e5069e9da6b4856ee86fc52938c2f979b0f38e82000000004847304402204165be9a4cbab8049e1af9723b96199bfd3e85f44c6b4c0177e3962686b26073022028f638da23fc003760861ad481ead4099312c60030d4cb57820ce4d33812a5ce01ffffffff01009d966b01000000434104ea1feff861b51fe3f5f8a3b12d0f4712db80e919548a80839fc47c6a21e66d957e9c5d8cd108c7a2d2324bad71f9904ac0ae7336507d785b17a2c115e427a32fac"
477477
);
478478

479-
let prevhash = vec![14, 198, 132, 64, 91, 88, 179, 160, 240, 20, 76, 154, 146, 199, 212, 41, 101, 135, 186, 111, 199, 16, 65, 255, 242, 19, 10, 3, 138, 0, 0, 0];
480-
let merkle = vec![120, 226, 89, 180, 144, 207, 200, 168, 229, 14, 25, 51, 175, 222, 63, 119, 122, 71, 189, 172, 139, 97, 213, 4, 165, 27, 104, 222, 222, 42, 193, 129];
479+
let prevhash = hex!("0ec684405b58b3a0f0144c9a92c7d4296587ba6fc71041fff2130a038a000000");
480+
let merkle = hex!("78e259b490cfc8a8e50e1933afde3f777a47bdac8b61d504a51b68dede2ac181");
481481

482482
let work_bytes: [u8; 32] =
483483
hex!("0000000000000000000000000000000000000000000000000000000000f7b6f1")

dash/src/blockdata/transaction/special_transaction/quorum_commitment.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ impl QuorumFinalizationCommitment {
5151
size += compact_size_len(self.signers.len() as u32);
5252
size += fixed_bitset_len(self.signers.as_slice(), self.signers.len());
5353
size += compact_size_len(self.valid_members.len() as u32);
54-
size += fixed_bitset_len(self.valid_members.as_slice(), self.signers.len());
54+
size += fixed_bitset_len(self.valid_members.as_slice(), self.valid_members.len());
5555
if self.version == 2 || self.version == 4 {
5656
size += 2;
5757
}

dash/src/consensus/encode.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -964,6 +964,14 @@ pub fn compact_size_len(value: u32) -> usize {
964964
}
965965

966966
pub fn read_fixed_bitset<R: Read + ?Sized>(r: &mut R, size: usize) -> std::io::Result<Vec<bool>> {
967+
// Define a reasonable maximum size to prevent excessive memory allocation
968+
const MAX_BITSET_SIZE: usize = 1_000_000;
969+
if size > MAX_BITSET_SIZE {
970+
return Err(io::Error::new(
971+
io::ErrorKind::InvalidInput,
972+
"Bitset size exceeds maximum allowed value",
973+
));
974+
}
967975
// Calculate the number of bytes needed
968976
let num_bytes = (size + 7) / 8;
969977
let mut bytes = vec![0u8; num_bytes];
@@ -983,6 +991,14 @@ pub fn read_fixed_bitset<R: Read + ?Sized>(r: &mut R, size: usize) -> std::io::R
983991
}
984992

985993
pub fn write_fixed_bitset<W: Write + ?Sized>(w: &mut W, bits: &[bool], size: usize) -> io::Result<usize> {
994+
// Define a reasonable maximum size to prevent excessive memory allocation
995+
const MAX_BITSET_SIZE: usize = 1_000_000;
996+
if size > MAX_BITSET_SIZE {
997+
return Err(io::Error::new(
998+
io::ErrorKind::InvalidInput,
999+
"Bitset size exceeds maximum allowed value",
1000+
));
1001+
}
9861002
// Calculate the number of bytes needed to represent 'size' bits
9871003
let num_bytes = (size + 7) / 8;
9881004
let mut bytes = vec![0u8; num_bytes];

0 commit comments

Comments
 (0)