forked from espressif/esp-idf
component/bt: fix nvs_get_str_or_blob length output error
This commit is contained in:
@@ -400,7 +400,10 @@ static esp_err_t nvs_get_str_or_blob(nvs_handle handle, nvs::ItemType type, cons
|
|||||||
} else if (*length < dataSize) {
|
} else if (*length < dataSize) {
|
||||||
*length = dataSize;
|
*length = dataSize;
|
||||||
return ESP_ERR_NVS_INVALID_LENGTH;
|
return ESP_ERR_NVS_INVALID_LENGTH;
|
||||||
|
} else if (*length > dataSize) {
|
||||||
|
*length = dataSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return entry.mStoragePtr->readItem(entry.mNsIndex, type, key, out_value, dataSize);
|
return entry.mStoragePtr->readItem(entry.mNsIndex, type, key, out_value, dataSize);
|
||||||
}
|
}
|
||||||
|
@@ -530,6 +530,10 @@ TEST_CASE("nvs api tests", "[nvs]")
|
|||||||
TEST_ESP_ERR(ESP_ERR_NVS_INVALID_LENGTH, nvs_get_str(handle_2, "key", buf, &buf_len_short));
|
TEST_ESP_ERR(ESP_ERR_NVS_INVALID_LENGTH, nvs_get_str(handle_2, "key", buf, &buf_len_short));
|
||||||
CHECK(buf_len_short == buf_len);
|
CHECK(buf_len_short == buf_len);
|
||||||
|
|
||||||
|
size_t buf_len_long = buf_len + 1;
|
||||||
|
TEST_ESP_OK(nvs_get_str(handle_2, "key", buf, &buf_len_long));
|
||||||
|
CHECK(buf_len_long == buf_len);
|
||||||
|
|
||||||
TEST_ESP_OK(nvs_get_str(handle_2, "key", buf, &buf_len));
|
TEST_ESP_OK(nvs_get_str(handle_2, "key", buf, &buf_len));
|
||||||
|
|
||||||
CHECK(0 == strcmp(buf, str));
|
CHECK(0 == strcmp(buf, str));
|
||||||
|
Reference in New Issue
Block a user