From 175b52e294449c2b6ae60302564e17b45f923f40 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 4 Sep 2026 03:49:11 +0900 Subject: [PATCH] network-generator: use parse_path_argument() to avoid spurious paths --- src/network/generator/network-generator-main.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/network/generator/network-generator-main.c b/src/network/generator/network-generator-main.c index 45c2b8e045..10b4a4377a 100644 --- a/src/network/generator/network-generator-main.c +++ b/src/network/generator/network-generator-main.c @@ -16,6 +16,7 @@ #include "main-func.h" #include "mkdir.h" #include "network-generator.h" +#include "parse-argument.h" #include "path-util.h" #include "proc-cmdline.h" #include "string-util.h" @@ -24,7 +25,9 @@ #define NETWORK_UNIT_DIRECTORY "/run/systemd/network/" -static const char *arg_root = NULL; +static char *arg_root = NULL; + +STATIC_DESTRUCTOR_REGISTER(arg_root, freep); COMMAND( "systemd-network-generator\0", @@ -159,6 +162,8 @@ static int context_save(Context *context) { } static int parse_argv(int argc, char *argv[], char ***ret_args) { + int r; + assert(argc >= 0); assert(argv); assert(ret_args); @@ -174,9 +179,10 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) { OPTION_COMMON_VERSION: return version(); - OPTION_LONG("root", "PATH", - "Operate on an alternate filesystem root"): - arg_root = opts.arg; + OPTION_LONG("root", "PATH", "Operate on an alternate filesystem root"): + r = parse_path_argument(opts.arg, /* suppress_root= */ true, &arg_root); + if (r < 0) + return r; break; OPTION_COMMON_INTROSPECT_CLI: