mesh: Fixed warning-to-error from GCC 8.1.1
Fixed compiler flagged unsafe usage of strncpy
diff --git a/mesh/storage.c b/mesh/storage.c
index 85fa81d..937f801 100644
--- a/mesh/storage.c
+++ b/mesh/storage.c
@@ -298,13 +298,11 @@
result = parse_config(net, config_name, false);
if (!result) {
- char *bak = (char *) l_malloc(strlen(config_name) + 5);
-
- if (!bak)
- goto done;
+ size_t len = strlen(config_name) + 5;
+ char *bak = l_malloc(len);
/* Fall-back to Backup version */
- strncpy(bak, config_name, strlen(config_name) + 1);
+ strncpy(bak, config_name, len);
bak = strncat(bak, ".bak", 5);
remove(config_name);
@@ -592,15 +590,13 @@
static void idle_save_config(void *user_data)
{
struct write_info *info = user_data;
- char *tmp = (char *) l_malloc(strlen(info->config_name) + 5);
- char *bak = (char *) l_malloc(strlen(info->config_name) + 5);
+ size_t len = strlen(info->config_name) + 5;
+ char *tmp = l_malloc(len);
+ char *bak = l_malloc(len);
bool result = false;
- if (!tmp || !bak)
- goto done;
-
- strncpy(tmp, info->config_name, strlen(info->config_name) + 1);
- strncpy(bak, info->config_name, strlen(info->config_name) + 1);
+ strncpy(tmp, info->config_name, len);
+ strncpy(bak, info->config_name, len);
tmp = strncat(tmp, ".tmp", 5);
bak = strncat(bak, ".bak", 5);
remove(tmp);
@@ -615,7 +611,6 @@
}
remove(tmp);
-done:
l_free(tmp);
l_free(bak);