Error out if there are multiple separators in sysctl

This commit is contained in:
sin 2014-04-17 17:01:57 +01:00
parent 0897d999e6
commit 3985929b6d
1 changed files with 14 additions and 4 deletions

View File

@ -131,17 +131,27 @@ main(int argc, char *argv[])
usage();
for (i = 0; i < argc; i++) {
value = NULL;
variable = argv[i];
p = strchr(variable, '=');
for (p = argv[i]; *p; p++) {
if (p[0] == '.' && p[1] == '.') {
weprintf("malformed input: %s\n", argv[i]);
break;
}
}
if (*p != '\0')
continue;
p = strchr(argv[i], '=');
if (p) {
if (p[1] == '\0') {
weprintf("malformed sysctl: %s\n", argv[i]);
weprintf("malformed input: %s\n", argv[i]);
continue;
}
*p = '\0';
value = &p[1];
} else {
value = NULL;
}
variable = argv[i];
if (variable) {
if (value) {
if (setsysctl(variable, value) < 0) {