File tree Expand file tree Collapse file tree 2 files changed +13
-5
lines changed Expand file tree Collapse file tree 2 files changed +13
-5
lines changed Original file line number Diff line number Diff line change @@ -90,11 +90,17 @@ pub fn generate_piece_commitment<T: std::io::Read>(
90
90
let n = write_padded ( source, & temp_piece_file)
91
91
. map_err ( |err| format_err ! ( "failed to write and preprocess bytes: {:?}" , err) ) ?;
92
92
93
+ if n == 0 {
94
+ return Err ( format_err ! (
95
+ "generate_piece_commitment: read 0 bytes from source before EOF"
96
+ ) ) ;
97
+ }
98
+
93
99
let n = UnpaddedBytesAmount ( n as u64 ) ;
94
100
95
101
if n != piece_size {
96
102
return Err ( format_err ! (
97
- "wrote more bytes ({:?}) than expected ({:?}) when preprocessing" ,
103
+ "wrote ({:?}) but expected to write ({:?}) when preprocessing" ,
98
104
n,
99
105
piece_size
100
106
) ) ;
@@ -177,6 +183,8 @@ where
177
183
178
184
match ( write_rslt, join_rslt) {
179
185
( Ok ( n) , Ok ( Ok ( r) ) ) => {
186
+ ensure ! ( n != 0 , "add_piece: read 0 bytes before EOF from source" ) ;
187
+
180
188
let n = UnpaddedBytesAmount ( n as u64 ) ;
181
189
182
190
ensure ! (
Original file line number Diff line number Diff line change @@ -52,14 +52,16 @@ pub fn compute_comm_d(sector_size: SectorSize, piece_infos: &[PieceInfo]) -> Res
52
52
let first = piece_infos. first ( ) . unwrap ( ) . clone ( ) ;
53
53
ensure ! (
54
54
u64 :: from( PaddedBytesAmount :: from( first. size) ) . is_power_of_two( ) ,
55
- "Piece size must be a power of 2."
55
+ "Piece size ({:?}) must be a power of 2." ,
56
+ PaddedBytesAmount :: from( first. size)
56
57
) ;
57
58
stack. shift ( first) ;
58
59
59
60
for piece_info in piece_infos. iter ( ) . skip ( 1 ) {
60
61
ensure ! (
61
62
u64 :: from( PaddedBytesAmount :: from( piece_info. size) ) . is_power_of_two( ) ,
62
- "Piece size must be a power of 2."
63
+ "Piece size ({:?}) must be a power of 2." ,
64
+ PaddedBytesAmount :: from( piece_info. size)
63
65
) ;
64
66
65
67
while stack. peek ( ) . size < piece_info. size {
@@ -661,8 +663,6 @@ mod tests {
661
663
}
662
664
assert_eq ! ( staged_sector. len( ) , u64 :: from( sector_size) as usize ) ;
663
665
664
- // println!("{:?}", &piece_infos);
665
-
666
666
let data_tree = graph. merkle_tree ( & staged_sector) ?;
667
667
let comm_d_root: Fr = data_tree. root ( ) . into ( ) ;
668
668
let comm_d = commitment_from_fr :: < Bls12 > ( comm_d_root) ;
You can’t perform that action at this time.
0 commit comments