verbs: reset optind (#10116)

optind may be used in each verb, e.g., udevadm. So, let's initialize
optind before calling verbs.

Without this, e.g., udevadm -d hwdb --update causes error in parsing arguments.
This commit is contained in:
Yu Watanabe
2018-09-18 16:24:58 +02:00
committed by Zbigniew Jędrzejewski-Szmek
parent 047de7e1b1
commit 010d436e02
+4 -2
View File
@@ -59,7 +59,9 @@ int dispatch_verb(int argc, char *argv[], const Verb verbs[], void *userdata) {
assert(argc >= optind);
left = argc - optind;
name = argv[optind];
argv += optind;
optind = 0;
name = argv[0];
for (i = 0;; i++) {
bool found;
@@ -116,7 +118,7 @@ int dispatch_verb(int argc, char *argv[], const Verb verbs[], void *userdata) {
}
if (name)
return verb->dispatch(left, argv + optind, userdata);
return verb->dispatch(left, argv, userdata);
else {
char* fake[2] = {
(char*) verb->verb,