From: Kay Sievers Date: Thu, 25 Oct 2012 19:31:38 +0000 (+0200) Subject: udev: set optind = 0, not the usual 1, to reset getopt_long()s internal state X-Git-Tag: v196~240 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=e5f2783e73a98cfb067f10eeed2289b454c9e672;ds=sidebyside udev: set optind = 0, not the usual 1, to reset getopt_long()s internal state --- 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; }