@@ -531,8 +531,15 @@ astarte_result_t astarte_kv_storage_iterator_get(
531
531
532
532
uint16_t key_id = 1 + (iter -> current_pair * NVS_ENTRIES_FOR_PAIR ) + NVS_ID_OFFSET_KEY ;
533
533
534
- ASTARTE_LOG_DBG ("NVS read. Id: '%u', data: '%p', len: '%zu'" , key_id , key , * key_size );
535
- nvs_rc = nvs_read (& nvs_fs , key_id , key , * key_size );
534
+ if (!key && (* key_size == 0 )) {
535
+ uint8_t foo = 0 ;
536
+ ASTARTE_LOG_DBG (
537
+ "NVS read. Id: '%u', data: '%p', len: '%zu'" , key_id , (void * ) & foo , sizeof (foo ));
538
+ nvs_rc = nvs_read (& nvs_fs , key_id , & foo , sizeof (foo ));
539
+ } else {
540
+ ASTARTE_LOG_DBG ("NVS read. Id: '%u', data: '%p', len: '%zu'" , key_id , key , * key_size );
541
+ nvs_rc = nvs_read (& nvs_fs , key_id , key , * key_size );
542
+ }
536
543
if (nvs_rc < 0 ) {
537
544
ASTARTE_LOG_ERR ("NVS read error: %s (%d)." , strerror (- nvs_rc ), nvs_rc );
538
545
ares = ASTARTE_RESULT_NVS_ERROR ;
@@ -741,8 +748,16 @@ static astarte_result_t get_nvs_entry_with_alloc(
741
748
static astarte_result_t get_nvs_entry (
742
749
struct nvs_fs * nvs_fs , uint16_t entry_id , void * data , size_t * data_size )
743
750
{
744
- ASTARTE_LOG_DBG ("NVS read. Id: '%u', data: '%p', len: '%zu'" , entry_id , data , * data_size );
745
- int nvs_rc = nvs_read (nvs_fs , entry_id , data , * data_size );
751
+ int nvs_rc = 0 ;
752
+ if (!data && (* data_size == 0 )) {
753
+ uint8_t foo = 0 ;
754
+ ASTARTE_LOG_DBG (
755
+ "NVS read. Id: '%u', data: '%p', len: '%zu'" , entry_id , (void * ) & foo , sizeof (foo ));
756
+ nvs_rc = nvs_read (nvs_fs , entry_id , & foo , sizeof (foo ));
757
+ } else {
758
+ ASTARTE_LOG_DBG ("NVS read. Id: '%u', data: '%p', len: '%zu'" , entry_id , data , * data_size );
759
+ nvs_rc = nvs_read (nvs_fs , entry_id , data , * data_size );
760
+ }
746
761
if (nvs_rc < 0 ) {
747
762
ASTARTE_LOG_ERR ("NVS read error: %s (%d)." , strerror (- nvs_rc ), nvs_rc );
748
763
return ASTARTE_RESULT_NVS_ERROR ;
@@ -758,8 +773,8 @@ static astarte_result_t get_nvs_entry(
758
773
static astarte_result_t get_stored_pairs (struct nvs_fs * nvs_fs , uint16_t * stored_pairs )
759
774
{
760
775
uint16_t data = 0 ;
761
- ASTARTE_LOG_DBG (
762
- "NVS read. Id: '%u', data: '%p', len: '%zu'" , STORED_PAIRS_NVS_ID , & data , sizeof (data ));
776
+ ASTARTE_LOG_DBG ("NVS read. Id: '%u', data: '%p', len: '%zu'" , STORED_PAIRS_NVS_ID ,
777
+ ( void * ) & data , sizeof (data ));
763
778
int nvs_rc = nvs_read (nvs_fs , STORED_PAIRS_NVS_ID , & data , sizeof (data ));
764
779
if ((nvs_rc < 0 ) && (nvs_rc != - ENOENT )) {
765
780
ASTARTE_LOG_ERR ("NVS read error: %s (%d)." , strerror (- nvs_rc ), nvs_rc );
0 commit comments