Skip to content

Commit 5d00b6e

Browse files
committed
Fix case where EEPROM will try to return longer string than it should
Fixes: #4768
1 parent 419ba32 commit 5d00b6e

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

Diff for: libraries/EEPROM/src/EEPROM.cpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,9 @@ size_t EEPROMClass::readString (int address, char* value, size_t maxLen)
382382
if (address + len > _size)
383383
return 0;
384384

385+
if (len > maxLen)
386+
return 0; //Maybe return part of the string instead?
387+
385388
memcpy((uint8_t*) value, _data + address, len);
386389
value[len] = 0;
387390
return len;
@@ -400,7 +403,7 @@ String EEPROMClass::readString (int address)
400403
if (address + len > _size)
401404
return String();
402405

403-
char value[len];
406+
char value[len+1];
404407
memcpy((uint8_t*) value, _data + address, len);
405408
value[len] = 0;
406409
return String(value);

0 commit comments

Comments
 (0)