]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
systemd-analyze: validate root argument
authorMaanya Goenka <t-magoenka@microsoft.com>
Wed, 30 Jun 2021 16:28:19 +0000 (09:28 -0700)
committerMaanya Goenka <t-magoenka@microsoft.com>
Tue, 10 Aug 2021 09:41:12 +0000 (02:41 -0700)
src/analyze/analyze.c

index e7600934eaa6ba524574805087e053183ae16abb..970ed34f06759a32b85654be791467942d8005ec 100644 (file)
@@ -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: