From 91a75fe45390134113c2fad214653e4337f86296 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BAben=20Soares=20Silva?= Date: Fri, 27 Sep 2024 15:30:22 +0100 Subject: [PATCH] Fix pack/unpack of SRS Report TLV value. Since report_tlv->length is in bytes, and the value is an array of uint32_t, the number of uint32_t to be pushed/pulled is (length + 3) /4. --- nfapi/open-nFAPI/nfapi/src/nfapi_p7.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nfapi/open-nFAPI/nfapi/src/nfapi_p7.c b/nfapi/open-nFAPI/nfapi/src/nfapi_p7.c index 3a0bfd1569..c2cf3b2439 100644 --- a/nfapi/open-nFAPI/nfapi/src/nfapi_p7.c +++ b/nfapi/open-nFAPI/nfapi/src/nfapi_p7.c @@ -2603,13 +2603,13 @@ static uint8_t pack_nr_srs_report_tlv(nfapi_srs_report_tlv_t *report_tlv, uint8_ push32(report_tlv->length, ppWritePackedMsg, end))) { return 0; } - - for(int i = 0; i < report_tlv->length; i++) { +#ifndef ENABLE_AERIAL + for (int i = 0; i < (report_tlv->length + 3) / 4; i++) { if (!push32(report_tlv->value[i], ppWritePackedMsg, end)) { return 0; } } - +#endif return 1; } @@ -4569,7 +4569,7 @@ static uint8_t unpack_nr_srs_report_tlv(nfapi_srs_report_tlv_t *report_tlv, uint return 0; } - for(int i = 0; i < report_tlv->length; i++) { + for (int i = 0; i < (report_tlv->length + 3) / 4; i++) { if (!pull32(ppReadPackedMsg, &report_tlv->value[i], end)) { return 0; }