Commit 8411a428 authored by francescomani's avatar francescomani

prevent faulty behavior of nr_compute_tbs when null input is not producing TBS = 0

parent 55a56002
...@@ -59,6 +59,11 @@ uint32_t nr_compute_tbs(uint16_t Qm, ...@@ -59,6 +59,11 @@ uint32_t nr_compute_tbs(uint16_t Qm,
tb_scaling, tb_scaling,
Nl); Nl);
if (Qm == 0 || R == 0 || nb_rb == 0 || Nl == 0) {
LOG_E(NR_MAC, "Error in compute TBS with a NULL input, returning NULL TBS\n");
return 0;
}
const int nb_subcarrier_per_rb = 12; const int nb_subcarrier_per_rb = 12;
const uint32_t nbp_re = nb_subcarrier_per_rb * nb_symb_sch - nb_dmrs_prb - nb_rb_oh; const uint32_t nbp_re = nb_subcarrier_per_rb * nb_symb_sch - nb_dmrs_prb - nb_rb_oh;
const uint32_t nb_re = min(156, nbp_re) * nb_rb; const uint32_t nb_re = min(156, nbp_re) * nb_rb;
......
...@@ -673,8 +673,7 @@ bool nr_find_nb_rb(uint16_t Qm, ...@@ -673,8 +673,7 @@ bool nr_find_nb_rb(uint16_t Qm,
uint16_t *nb_rb) uint16_t *nb_rb)
{ {
// for transform precoding only RB = 2^a_2 * 3^a_3 * 5^a_5 is allowed with a non-negative // for transform precoding only RB = 2^a_2 * 3^a_3 * 5^a_5 is allowed with a non-negative
while(transform_precoding == NR_PUSCH_Config__transformPrecoder_enabled && while (transform_precoding == NR_PUSCH_Config__transformPrecoder_enabled && !multiple_2_3_5(nb_rb_max))
!multiple_2_3_5(nb_rb_max))
nb_rb_max--; nb_rb_max--;
/* is the maximum (not even) enough? */ /* is the maximum (not even) enough? */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment