Blob verify (#4951)

* Ensure signable data is not out of range

* Add a broadcast stage that puts bad sizes in blobs

* Resign blob after modifyign size

* Remove assertions that fail when size != meta.size
This commit is contained in:
carllin
2019-07-08 18:21:52 -07:00
committed by GitHub
parent 417e8d5064
commit 22ef3c7c54
7 changed files with 121 additions and 63 deletions

View File

@@ -414,7 +414,7 @@ impl Blob {
let bytes = &data[..data_len];
blob.data[..data_len].copy_from_slice(bytes);
blob.meta.size = blob.data_size() as usize;
blob.meta.size = data_len;
blob
}
@@ -504,7 +504,10 @@ impl Blob {
}
pub fn data_size(&self) -> u64 {
LittleEndian::read_u64(&self.data[SIZE_RANGE])
cmp::min(
LittleEndian::read_u64(&self.data[SIZE_RANGE]),
BLOB_SIZE as u64,
)
}
pub fn set_data_size(&mut self, size: u64) {