@@ -153,7 +153,7 @@ static td::Status deserialize_block_full(ton_api::tonNode_dataFull& f, BlockIdEx
153153static td::Status deserialize_block_full (ton_api::tonNode_dataFullCompressed& f, BlockIdExt& id, td::BufferSlice& proof,
154154 td::BufferSlice& data, bool & is_proof_link, int max_decompressed_size) {
155155 TRY_RESULT (decompressed, td::lz4_decompress (f.compressed_ , max_decompressed_size));
156- TRY_RESULT (roots, vm::std_boc_deserialize_multi (decompressed, 1000000 , true ));
156+ TRY_RESULT (roots, vm::std_boc_deserialize_multi (decompressed, max_collated_data_roots + 1 , true ));
157157 if (roots.size () != 2 ) {
158158 return td::Status::Error (" expected 2 roots in boc" );
159159 }
@@ -203,7 +203,8 @@ td::Result<td::BufferSlice> serialize_block_candidate_broadcast(BlockIdExt block
203203 TRY_RESULT (root, vm::std_boc_deserialize (data));
204204 std::vector<Ref<vm::Cell>> roots = {root};
205205 if (collated_data) {
206- TRY_RESULT (collated_data_roots, vm::std_boc_deserialize_multi (collated_data.value (), 1000000 , true ));
206+ TRY_RESULT (collated_data_roots,
207+ vm::std_boc_deserialize_multi (collated_data.value (), max_collated_data_roots, true ));
207208 roots.insert (roots.end (), collated_data_roots.begin (), collated_data_roots.end ());
208209 }
209210 TRY_RESULT (data_new, vm::std_boc_serialize_multi (std::move (roots), 2 ));
@@ -227,7 +228,7 @@ static td::Status deserialize_block_candidate_broadcast(ton_api::tonNode_blockCa
227228 cc_seqno = obj.catchain_seqno_ ;
228229 validator_set_hash = obj.validator_set_hash_ ;
229230 TRY_RESULT (decompressed, td::lz4_decompress (obj.compressed_ , max_decompressed_data_size));
230- TRY_RESULT (roots, vm::std_boc_deserialize_multi (decompressed, 1000000 , true ));
231+ TRY_RESULT (roots, vm::std_boc_deserialize_multi (decompressed, max_collated_data_roots + 1 , true ));
231232 if (roots.empty ()) {
232233 return td::Status::Error (" expected at least 1 root in boc" );
233234 }
0 commit comments