]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
quotacheck: store argv[*] in static var 31705/head
authorMike Yuan <me@yhndnzj.com>
Sun, 10 Mar 2024 15:11:47 +0000 (23:11 +0800)
committerMike Yuan <me@yhndnzj.com>
Sun, 10 Mar 2024 15:11:47 +0000 (23:11 +0800)
As per our coding style

src/quotacheck/quotacheck.c

index d049f5364b77707ad38d5db7779d2c4b0e846289..d46f280bf49b325576ad4b7bf8dbcfddbea3032a 100644 (file)
 #include "proc-cmdline.h"
 #include "process-util.h"
 #include "signal-util.h"
+#include "static-destruct.h"
 #include "string-util.h"
 
+static char *arg_path = NULL;
 static bool arg_skip = false;
 static bool arg_force = false;
 
+STATIC_DESTRUCTOR_REGISTER(arg_path, freep);
+
 static int parse_proc_cmdline_item(const char *key, const char *value, void *data) {
 
         if (streq(key, "quotacheck.mode")) {
@@ -56,8 +60,6 @@ static void test_files(void) {
 
 static int run(int argc, char *argv[]) {
         int r;
-        _cleanup_free_ char *fspath = NULL;
-        bool quota_check_all = false;
 
         log_setup();
 
@@ -89,21 +91,19 @@ static int run(int argc, char *argv[]) {
         }
 
         if (argc == 2) {
-                fspath = strdup(argv[1]);
-                if (!fspath)
+                arg_path = strdup(argv[1]);
+                if (!arg_path)
                         return log_oom();
-        } else
-                quota_check_all = true;
+        }
 
         r = safe_fork("(quotacheck)", FORK_RESET_SIGNALS|FORK_DEATHSIG_SIGTERM|FORK_RLIMIT_NOFILE_SAFE|FORK_WAIT|FORK_LOG, NULL);
         if (r < 0)
                 return r;
-
         if (r == 0) {
                 const char *cmdline[] = {
                         QUOTACHECK,
-                        quota_check_all ? "-anug" : "-nug",
-                        fspath,
+                        arg_path ? "-nug" : "-anug", /* Check all file systems if path isn't specified */
+                        arg_path,
                         NULL
                 };