Stricter checks for netname and node names.
[tinc] / src / tincd.c
index 98123fe..0fd2f8d 100644 (file)
@@ -231,11 +231,16 @@ static bool parse_options(int argc, char **argv) {
 
        /* netname "." is special: a "top-level name" */
 
-       if(netname && !strcmp(netname, ".")) {
+       if(netname && (!*netname || !strcmp(netname, "."))) {
                free(netname);
                netname = NULL;
        }
 
+       if(netname && (strpbrk(netname, "\\/") || *netname == '.')) {
+               fprintf(stderr, "Invalid character in netname!\n");
+               return false;
+       }
+
        return true;
 }