From: Yu Watanabe Date: Tue, 17 Sep 2024 19:59:38 +0000 (+0900) Subject: kernel-install: unquote plugin paths in KERNEL_INSTALL_PLUGINS X-Git-Tag: v257-rc1~411^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6e1816ef1696e983f564301e9b1af5df1fa7a404;p=thirdparty%2Fsystemd.git kernel-install: unquote plugin paths in KERNEL_INSTALL_PLUGINS To support the case that paths to plugins contain spaces. Prompted by #34459 --- diff --git a/src/kernel-install/kernel-install.c b/src/kernel-install/kernel-install.c index 408de8a0e5c..a937d03166c 100644 --- a/src/kernel-install/kernel-install.c +++ b/src/kernel-install/kernel-install.c @@ -404,15 +404,16 @@ static int context_set_path_strv(Context *c, char* const* strv, const char *sour static int context_set_plugins(Context *c, const char *s, const char *source) { _cleanup_strv_free_ char **v = NULL; + int r; assert(c); if (c->plugins || !s) return 0; - v = strv_split(s, NULL); - if (!v) - return log_oom(); + r = strv_split_full(&v, s, NULL, EXTRACT_UNQUOTE); + if (r < 0) + return log_error_errno(r, "Failed to parse plugin paths from %s: %m", source); return context_set_path_strv(c, v, source, "plugins", &c->plugins); } diff --git a/src/kernel-install/test-kernel-install.sh b/src/kernel-install/test-kernel-install.sh index 0e419798782..51d618e6501 100755 --- a/src/kernel-install/test-kernel-install.sh +++ b/src/kernel-install/test-kernel-install.sh @@ -46,7 +46,13 @@ echo 'DTBDTBDTBDTB' >"$D/sources/subdir/whatever.dtb" export KERNEL_INSTALL_CONF_ROOT="$D/sources" # We "install" multiple plugins, but control which ones will be active via install.conf. -export KERNEL_INSTALL_PLUGINS="${ukify_install} ${loaderentry_install} ${uki_copy_install}" +KERNEL_INSTALL_PLUGINS="'${loaderentry_install}' '${uki_copy_install}'" +if [[ -n "$ukify_install" ]]; then + # shellcheck disable=SC2089 + KERNEL_INSTALL_PLUGINS="'${ukify_install}' $KERNEL_INSTALL_PLUGINS" +fi +# shellcheck disable=SC2090 +export KERNEL_INSTALL_PLUGINS export BOOT_ROOT="$D/boot" export BOOT_MNT="$D/boot" export MACHINE_ID='3e0484f3634a418b8e6a39e8828b03e3'