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:
committed by
Zbigniew Jędrzejewski-Szmek
parent
047de7e1b1
commit
010d436e02
+4
-2
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user