]> git.meshlink.io Git - meshlink/blobdiff - src/conf.c
Fix all compiler warnings found using -Wall -W -pedantic.
[meshlink] / src / conf.c
index fcaefdd27ff8a122fff0b0fa70dc127cb1666f91..771abe58600ca788b6dbc19ab929a2c6e444b17b 100644 (file)
@@ -431,8 +431,15 @@ bool modify_config_file(struct meshlink_handle *mesh, const char *name, const ch
        char tmpname[PATH_MAX];
        bool error = false;
 
-       snprintf(filename, sizeof(filename), "%s" SLASH "hosts" SLASH "%s", mesh->confbase, name);
-       snprintf(tmpname, sizeof(tmpname), "%s.tmp", filename);
+       if (snprintf(filename, sizeof(filename), "%s" SLASH "hosts" SLASH "%s", mesh->confbase, name) >= PATH_MAX) {
+               logger(mesh, MESHLINK_ERROR, "Filename too long: %s" SLASH "hosts" SLASH "%s", mesh->confbase, name);
+               return false;
+       }
+
+       if (snprintf(tmpname, sizeof(tmpname), "%s.tmp", filename) >= PATH_MAX) {
+               logger(mesh, MESHLINK_ERROR, "Filename too long: %s.tmp", filename);
+               return false;
+       }
 
        FILE *fr = fopen(filename, "r");