Stricter checks for netname and node names.

- Node names should not be empty.
- Net names should not contain slashes or start with a dot, because they are
  used in pathnames.
This commit is contained in:
Guus Sliepen 2012-08-01 16:51:59 +02:00
parent 61006ced88
commit 6396f42d74
3 changed files with 18 additions and 2 deletions

View file

@ -194,11 +194,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;
}
@ -1344,6 +1349,9 @@ static int cmd_config(int argc, char *argv[]) {
}
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;