From e5f2783e73a98cfb067f10eeed2289b454c9e672 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Thu, 25 Oct 2012 21:31:38 +0200 Subject: [PATCH] udev: set optind = 0, not the usual 1, to reset getopt_long()s internal state --- src/udev/udev-builtin.c | 3 ++- src/udev/udevadm.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/udev/udev-builtin.c b/src/udev/udev-builtin.c index 18fc3df27..26ee16c66 100644 --- a/src/udev/udev-builtin.c +++ b/src/udev/udev-builtin.c @@ -127,7 +127,8 @@ int udev_builtin_run(struct udev_device *dev, enum udev_builtin_cmd cmd, const c int argc; char *argv[128]; - optind = 1; + /* we need '0' here to reset the internal state */ + optind = 0; util_strscpy(arg, sizeof(arg), command); udev_build_argv(udev_device_get_udev(dev), arg, &argc, argv); return builtins[cmd]->cmd(dev, argc, argv, test); diff --git a/src/udev/udevadm.c b/src/udev/udevadm.c index d1e9756b2..5e69e192c 100644 --- a/src/udev/udevadm.c +++ b/src/udev/udevadm.c @@ -134,7 +134,8 @@ int main(int argc, char *argv[]) if (strcmp(udevadm_cmds[i]->name, command) == 0) { argc -= optind; argv += optind; - optind = 1; + /* we need '0' here to reset the internal state */ + optind = 0; rc = run_command(udev, udevadm_cmds[i], argc, argv); goto out; } -- 2.30.2