From c17ca2f674c911355a47a22299524a8a2924e236 Mon Sep 17 00:00:00 2001 From: Ahmet Inan Date: Tue, 26 Mar 2024 20:21:48 +0100 Subject: [PATCH] added more asserts for block length --- cauchy_prime_field_erasure_coding.hh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cauchy_prime_field_erasure_coding.hh b/cauchy_prime_field_erasure_coding.hh index d747849..5465b16 100644 --- a/cauchy_prime_field_erasure_coding.hh +++ b/cauchy_prime_field_erasure_coding.hh @@ -11,6 +11,7 @@ namespace CODE { template struct CauchyPrimeFieldErasureCoding { + static_assert(MAX_LEN < int(PF::P-1), "Block length must be smaller than largest field value"); PF temp[MAX_LEN]; bool used[PF::P]; PF row_num, row_den; @@ -114,7 +115,7 @@ struct CauchyPrimeFieldErasureCoding int encode(const IO *data, IO *block, int block_id, int block_len, int block_cnt) { assert(block_id >= block_cnt && block_id < int(PF::P) / 2); - assert(block_len < int(PF::P-1) && block_len <= MAX_LEN); + assert(block_len <= MAX_LEN); for (int k = 0; k < block_cnt; k++) { PF a_ik = cauchy_matrix(block_id, k); mac(data + block_len * k, a_ik, block_len, !k, k == block_cnt - 1); @@ -126,6 +127,7 @@ struct CauchyPrimeFieldErasureCoding } void decode(IO *data, const IO *blocks, const IO *block_subs, const IO *block_ids, int block_idx, int block_len, int block_cnt) { + assert(block_len <= MAX_LEN); for (int k = 0; k < block_cnt; k++) { PF b_ik = inverse_cauchy_matrix(block_ids, block_idx, k, block_cnt); mac_sub(data, blocks + block_len * k, b_ik, block_subs[k], block_len, !k, k == block_cnt - 1);