From eede43070a3402671d96927400b121b88fd3c7af Mon Sep 17 00:00:00 2001 From: Marek NOVAK Date: Wed, 3 Jul 2024 06:52:23 +0200 Subject: [PATCH] Add sanity check to sx126x driver when handling retention list --- .../radio_drivers/sx126x_driver/src/sx126x.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lbm_lib/smtc_modem_core/radio_drivers/sx126x_driver/src/sx126x.c b/lbm_lib/smtc_modem_core/radio_drivers/sx126x_driver/src/sx126x.c index b01d5a1..4549013 100644 --- a/lbm_lib/smtc_modem_core/radio_drivers/sx126x_driver/src/sx126x.c +++ b/lbm_lib/smtc_modem_core/radio_drivers/sx126x_driver/src/sx126x.c @@ -1413,8 +1413,15 @@ sx126x_status_t sx126x_add_registers_to_retention_list( const void* context, con if( status == SX126X_STATUS_OK ) { - const uint8_t initial_nb_of_registers = buffer[0]; - uint8_t* register_list = &buffer[1]; + uint8_t initial_nb_of_registers = buffer[0]; + uint8_t* register_list = &buffer[1]; + + // sanity check - in case invalid value read -> set to zero + if(initial_nb_of_registers > SX126X_MAX_NB_REG_IN_RETENTION) + { + initial_nb_of_registers = 0; + buffer[0] = 0; + } for( uint8_t index = 0; index < register_nb; index++ ) {