#include "crc.h"
#endif
#include <cstdio>
-
+#include <cstring>
namespace nvs
{
std::fill_n(reinterpret_cast<uint32_t*>(item.key), sizeof(item.key) / 4, 0xffffffff);
std::fill_n(reinterpret_cast<uint32_t*>(item.data), sizeof(item.data) / 4, 0xffffffff);
- strlcpy(item.key, key, Item::MAX_KEY_LENGTH + 1);
-
+ strncpy(item.key, key, sizeof(item.key) - 1);
+ item.key[sizeof(item.key) - 1] = 0;
if (datatype != ItemType::SZ && datatype != ItemType::BLOB) {
memcpy(item.data, data, dataSize);
NamespaceEntry* entry = new NamespaceEntry;
entry->mIndex = ns;
- strlcpy(entry->mName, nsName, sizeof(entry->mName));
+ strncpy(entry->mName, nsName, sizeof(entry->mName) - 1);
+ entry->mName[sizeof(entry->mName) - 1] = 0;
mNamespaces.push_back(entry);
} else {
}
#endif //ESP_PLATFORM
-}
\ No newline at end of file
+}
$(OBJ_FILES): %.o: %.cpp
$(TEST_PROGRAM): $(OBJ_FILES)
- gcc $(LDFLAGS) -o $(TEST_PROGRAM) $(OBJ_FILES)
+ g++ $(LDFLAGS) -o $(TEST_PROGRAM) $(OBJ_FILES)
$(OUTPUT_DIR):
mkdir -p $(OUTPUT_DIR)
struct TestNode : public intrusive_list_node<TestNode> {
TestNode(const char* name_ = "", int num_ = 0) : num(num_)
{
- strlcpy(name, name_, sizeof(name));
+ strncpy(name, name_, sizeof(name) - 1);
+ name[sizeof(name) - 1] = 0;
}
char name[32];
int num;
CHECK(crc32_1 != item2.calculateCrc32());
item2 = item1;
- strlcpy(item2.key, "foo", Item::MAX_KEY_LENGTH);
+ strncpy(item2.key, "foo", Item::MAX_KEY_LENGTH);
CHECK(crc32_1 != item2.calculateCrc32());
}
}
if (err == ESP_ERR_NVS_REMOVE_FAILED) {
written[index] = true;
- strlcpy(reinterpret_cast<char*>(values[index]), buf, strBufLen);
+ strncpy(reinterpret_cast<char*>(values[index]), buf, strBufLen);
return ESP_ERR_FLASH_OP_FAIL;
}
REQUIRE(err == ESP_OK);
written[index] = true;
- strlcpy(reinterpret_cast<char*>(values[index]), buf, strBufLen);
+ strncpy(reinterpret_cast<char*>(values[index]), buf, strBufLen);
break;
}