From dbfb806afa3000c5fd9dd884c73d36c8dc1f4558 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Sun, 2 Jun 2024 11:51:14 +0200 Subject: [PATCH] Scheduler: Avoid out-of-bounds read/write The scheduler might receive PUSCH data when it does not expect it. Handle this case. --- openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c index 8a38c6e66d..6cf00e802c 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c @@ -727,6 +727,10 @@ static void _nr_rx_sdu(const module_id_t gnb_mod_idP, timing_advance, sduP, rssi); + if (harq_pid < 0) { + LOG_E(NR_MAC, "UE %04x received ULSCH when feedback UL HARQ %d (unexpected ULSCH transmission)\n", rntiP, harq_pid); + return; + } // if not missed detection (10dB threshold for now) if (rssi > 0) {