Error out if there are multiple separators in sysctl
This commit is contained in:
parent
0897d999e6
commit
3985929b6d
18
sysctl.c
18
sysctl.c
|
@ -131,17 +131,27 @@ main(int argc, char *argv[])
|
||||||
usage();
|
usage();
|
||||||
|
|
||||||
for (i = 0; i < argc; i++) {
|
for (i = 0; i < argc; i++) {
|
||||||
value = NULL;
|
for (p = argv[i]; *p; p++) {
|
||||||
variable = argv[i];
|
if (p[0] == '.' && p[1] == '.') {
|
||||||
p = strchr(variable, '=');
|
weprintf("malformed input: %s\n", argv[i]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (*p != '\0')
|
||||||
|
continue;
|
||||||
|
p = strchr(argv[i], '=');
|
||||||
if (p) {
|
if (p) {
|
||||||
if (p[1] == '\0') {
|
if (p[1] == '\0') {
|
||||||
weprintf("malformed sysctl: %s\n", argv[i]);
|
weprintf("malformed input: %s\n", argv[i]);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
value = &p[1];
|
value = &p[1];
|
||||||
|
} else {
|
||||||
|
value = NULL;
|
||||||
}
|
}
|
||||||
|
variable = argv[i];
|
||||||
|
|
||||||
if (variable) {
|
if (variable) {
|
||||||
if (value) {
|
if (value) {
|
||||||
if (setsysctl(variable, value) < 0) {
|
if (setsysctl(variable, value) < 0) {
|
||||||
|
|
Loading…
Reference in New Issue