From: Yu Watanabe Date: Sun, 23 Sep 2018 06:49:49 +0000 (+0900) Subject: udev-builtin: replace udev_build_argv() by strv_split_extract() X-Git-Tag: v240~630^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6d93eeb7c8b3cfa104ed2247fa457fbb55b3f1e1;p=thirdparty%2Fsystemd.git udev-builtin: replace udev_build_argv() by strv_split_extract() --- diff --git a/src/udev/udev-builtin.c b/src/udev/udev-builtin.c index be7e995933f..956dc30ed29 100644 --- a/src/udev/udev-builtin.c +++ b/src/udev/udev-builtin.c @@ -102,18 +102,18 @@ enum udev_builtin_cmd udev_builtin_lookup(const char *command) { } int udev_builtin_run(struct udev_device *dev, enum udev_builtin_cmd cmd, const char *command, bool test) { - char arg[UTIL_PATH_SIZE]; - int argc; - char *argv[128]; + _cleanup_strv_free_ char **argv = NULL; if (!builtins[cmd]) return -EOPNOTSUPP; + argv = strv_split_full(command, NULL, SPLIT_QUOTES | SPLIT_RELAX); + if (!argv) + return -ENOMEM; + /* we need '0' here to reset the internal state */ optind = 0; - strscpy(arg, sizeof(arg), command); - udev_build_argv(arg, &argc, argv); - return builtins[cmd]->cmd(dev, argc, argv, test); + return builtins[cmd]->cmd(dev, strv_length(argv), argv, test); } int udev_builtin_add_property(struct udev_device *dev, bool test, const char *key, const char *val) {