From 27df357a66f6613e04a5b98c97de4f6af6d01ca1 Mon Sep 17 00:00:00 2001 From: Xavier Arteaga Date: Thu, 4 Oct 2018 10:37:59 +0200 Subject: [PATCH] Fixes #273 --- lib/src/phy/phch/pusch.c | 4 ++++ srsue/src/phy/phch_worker.cc | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/lib/src/phy/phch/pusch.c b/lib/src/phy/phch/pusch.c index 3525f754c..0f06ef1bb 100644 --- a/lib/src/phy/phch/pusch.c +++ b/lib/src/phy/phch/pusch.c @@ -533,6 +533,10 @@ int srslte_pusch_encode(srslte_pusch_t *q, srslte_pusch_cfg_t *cfg, srslte_softb srslte_sequence_t *seq = get_user_sequence(q, rnti, cfg->sf_idx, cfg->nbits.nof_bits); // Run scrambling + if (!seq) { + fprintf(stderr, "Error getting scrambling sequence\n"); + return SRSLTE_ERROR; + } srslte_scrambling_bytes(seq, (uint8_t*) q->q, cfg->nbits.nof_bits); // Correct UCI placeholder/repetition bits diff --git a/srsue/src/phy/phch_worker.cc b/srsue/src/phy/phch_worker.cc index ee2dc132b..53ca93273 100644 --- a/srsue/src/phy/phch_worker.cc +++ b/srsue/src/phy/phch_worker.cc @@ -1269,6 +1269,22 @@ void phch_worker::encode_pusch(srslte_ra_ul_grant_t *grant, uint8_t *payload, ui char timestr[64]; timestr[0]='\0'; + /* Check input values ranges */ + if (rnti == 0) { + Warning("Encode PUSCH: Invalid RNTI (= 0)\n"); + return; + } else if (rv > 3) { + Warning("Encode PUSCH: Invalid RV (= %ud)\n", rv); + return; + } else if (payload == NULL) { + Warning("Encode PUSCH: NULL payload\n"); + return; + } else if (softbuffer == NULL) { + Warning("Encode PUSCH: NULL softbuffer\n"); + return; + } + + /* Configure and encode */ if (srslte_ue_ul_cfg_grant(&ue_ul, grant, TTI_TX(tti), rv, current_tx_nb)) { Error("Configuring UL grant\n"); }