X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev%2Fudevadm-test-builtin.c;h=ea1bcbcb07d17de17c9a7a51e4a5d6a375c3b036;hb=95de03a7a20e02f06d2bbe8350f1b5e89af02790;hp=f8af8992d00fd386e557f46481bc853ca49588c1;hpb=81dadce58f80edae4dc45ba55a2c41cb0f26570b;p=elogind.git diff --git a/udev/udevadm-test-builtin.c b/udev/udevadm-test-builtin.c index f8af8992d..ea1bcbcb0 100644 --- a/udev/udevadm-test-builtin.c +++ b/udev/udevadm-test-builtin.c @@ -70,6 +70,7 @@ static int adm_builtin(struct udev *udev, int argc, char *argv[]) goto out; } } + command = argv[optind++]; if (command == NULL) { fprintf(stderr, "command missing\n"); @@ -85,6 +86,16 @@ static int adm_builtin(struct udev *udev, int argc, char *argv[]) goto out; } + udev_builtin_load(udev); + + cmd = udev_builtin_lookup(command); + if (cmd >= UDEV_BUILTIN_MAX) { + fprintf(stderr, "unknown command '%s'\n", command); + help(udev); + rc = 5; + goto out; + } + /* add /sys if needed */ if (strncmp(syspath, udev_get_sys_path(udev), strlen(udev_get_sys_path(udev))) != 0) util_strscpyl(filename, sizeof(filename), udev_get_sys_path(udev), syspath, NULL); @@ -99,20 +110,13 @@ static int adm_builtin(struct udev *udev, int argc, char *argv[]) goto out; } - cmd = udev_builtin_lookup(command); - if (cmd >= UDEV_BUILTIN_MAX) { - fprintf(stderr, "unknown command '%s'\n", command); - help(udev); - rc = 5; - goto out; - } - if (udev_builtin_run(dev, cmd, command, true) < 0) { fprintf(stderr, "error executing '%s'\n\n", command); rc = 6; } out: udev_device_unref(dev); + udev_builtin_unload(udev); return rc; }