KVStore: Fix buffer overrun when device key size doesn't match

This change fixes buffer overrun when injected device key is 32-byte but read as 16-byte.
pull/12875/head
Chun-Chieh Li 2020-04-28 09:52:24 +08:00
parent af4c8a94f3
commit bde1f56399
1 changed files with 3 additions and 0 deletions

View File

@ -1424,6 +1424,9 @@ int TDBStore::do_reserved_data_get(void *reserved_data, size_t reserved_data_buf
if (crc == trailer.crc) {
// Correct data, copy it and return to caller
if (reserved_data) {
if (reserved_data_buf_size < trailer.data_size) {
return MBED_ERROR_INVALID_SIZE;
}
memcpy(reserved_data, buf, trailer.data_size);
}
if (actual_data_size) {