/* 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;
}
}
bool check_id(const char *name) {
+ if(!name || !*name)
+ return false;
+
for(int i = 0; i < strlen(name); i++) {
if(!isalnum(name[i]) && name[i] != '_')
return false;