From 7532986d8fd0c044eac1a0956bf37c1eedbddbf1 Mon Sep 17 00:00:00 2001 From: Larry Bernstone Date: Wed, 24 Apr 2019 16:42:28 -0600 Subject: [PATCH 1/3] Ensure that _size is properly set in begin --- libraries/EEPROM/src/EEPROM.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/EEPROM/src/EEPROM.cpp b/libraries/EEPROM/src/EEPROM.cpp index 9fe714601e9..6cacbe7507c 100644 --- a/libraries/EEPROM/src/EEPROM.cpp +++ b/libraries/EEPROM/src/EEPROM.cpp @@ -131,6 +131,7 @@ bool EEPROMClass::begin(size_t size) { } _data = new uint8_t[size]; + _size = size; nvs_get_blob(_handle, _name, _data, &_size); return true; } From 6cf63572406661bbfc175c695afc9083aabc7178 Mon Sep 17 00:00:00 2001 From: Larry Bernstone Date: Thu, 25 Apr 2019 15:29:26 -0600 Subject: [PATCH 2/3] NULL check on _data assignment --- libraries/EEPROM/src/EEPROM.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/EEPROM/src/EEPROM.cpp b/libraries/EEPROM/src/EEPROM.cpp index 6cacbe7507c..fc2b2acdff4 100644 --- a/libraries/EEPROM/src/EEPROM.cpp +++ b/libraries/EEPROM/src/EEPROM.cpp @@ -131,6 +131,10 @@ bool EEPROMClass::begin(size_t size) { } _data = new uint8_t[size]; + if(!_data) { + log_e("Not enough memory for %d bytes in EEPROM"); + return false; + } _size = size; nvs_get_blob(_handle, _name, _data, &_size); return true; From 7d9c9beb9e3dcd51f9a724cfd03a27388c4f1b23 Mon Sep 17 00:00:00 2001 From: Larry Bernstone Date: Fri, 26 Apr 2019 08:44:52 -0600 Subject: [PATCH 3/3] Changed _data to malloc in order to catch alloc fails --- libraries/EEPROM/src/EEPROM.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/EEPROM/src/EEPROM.cpp b/libraries/EEPROM/src/EEPROM.cpp index fc2b2acdff4..943ad339b24 100644 --- a/libraries/EEPROM/src/EEPROM.cpp +++ b/libraries/EEPROM/src/EEPROM.cpp @@ -130,7 +130,7 @@ bool EEPROMClass::begin(size_t size) { delete[] _data; } - _data = new uint8_t[size]; + _data = (uint8_t*) malloc(size); if(!_data) { log_e("Not enough memory for %d bytes in EEPROM"); return false;