From 010d436e020ab4af57a8b9fc38918f551acc875b Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 18 Sep 2018 23:24:58 +0900 Subject: [PATCH] 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. --- src/basic/verbs.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/basic/verbs.c b/src/basic/verbs.c index 1893ea3733..34c7708080 100644 --- a/src/basic/verbs.c +++ b/src/basic/verbs.c @@ -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,