From: Maanya Goenka Date: Wed, 30 Jun 2021 16:28:19 +0000 (-0700) Subject: systemd-analyze: validate root argument X-Git-Tag: v250-rc1~843^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=782671bc8f580835a917ac712fe6dc0d17205bd5;p=thirdparty%2Fsystemd.git systemd-analyze: validate root argument --- diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c index e7600934eaa..970ed34f067 100644 --- a/src/analyze/analyze.c +++ b/src/analyze/analyze.c @@ -86,12 +86,13 @@ static const char *arg_host = NULL; static UnitFileScope arg_scope = UNIT_FILE_SYSTEM; static bool arg_man = true; static bool arg_generators = false; -static const char *arg_root = NULL; +static char *arg_root = NULL; static unsigned arg_iterations = 1; static usec_t arg_base_time = USEC_INFINITY; STATIC_DESTRUCTOR_REGISTER(arg_dot_from_patterns, strv_freep); STATIC_DESTRUCTOR_REGISTER(arg_dot_to_patterns, strv_freep); +STATIC_DESTRUCTOR_REGISTER(arg_root, freep); typedef struct BootTimes { usec_t firmware_time; @@ -2281,7 +2282,9 @@ static int parse_argv(int argc, char *argv[]) { return version(); case ARG_ROOT: - arg_root = optarg; + r = parse_path_argument(optarg, /* suppress_root= */ true, &arg_root); + if (r < 0) + return r; break; case ARG_SYSTEM: