summaryrefslogtreecommitdiffstats
path: root/src/quotacheck/quotacheck.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-05-06 21:15:38 +0200
committerLennart Poettering <lennart@poettering.net>2013-05-06 21:15:38 +0200
commit83374163014eb50ed0ecd4f18ab45e5280ce7081 (patch)
tree895868c6f579883119a52b7d880b06f8d86db3e8 /src/quotacheck/quotacheck.c
parentnspawn: explain that we look for /etc/os-release in the container directory (diff)
downloadsystemd-83374163014eb50ed0ecd4f18ab45e5280ce7081.tar.xz
systemd-83374163014eb50ed0ecd4f18ab45e5280ce7081.zip
quota: use QUOTACHECK path correctly as tested in configure.ac
https://bugs.freedesktop.org/show_bug.cgi?id=63555
Diffstat (limited to '')
-rw-r--r--src/quotacheck/quotacheck.c28
1 files changed, 13 insertions, 15 deletions
diff --git a/src/quotacheck/quotacheck.c b/src/quotacheck/quotacheck.c
index 32f3ff904d..1f63785041 100644
--- a/src/quotacheck/quotacheck.c
+++ b/src/quotacheck/quotacheck.c
@@ -33,14 +33,16 @@ static bool arg_skip = false;
static bool arg_force = false;
static int parse_proc_cmdline(void) {
- char *line, *w, *state;
- int r;
+ _cleanup_free_ char *line = NULL;
+ char *w, *state;
size_t l;
+ int r;
if (detect_container(NULL) > 0)
return 0;
- if ((r = read_one_line_file("/proc/cmdline", &line)) < 0) {
+ r = read_one_line_file("/proc/cmdline", &line);
+ if (r < 0) {
log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r));
return 0;
}
@@ -62,8 +64,6 @@ static int parse_proc_cmdline(void) {
}
#endif
}
-
- free(line);
return 0;
}
@@ -77,13 +77,13 @@ static void test_files(void) {
}
int main(int argc, char *argv[]) {
+
static const char * const cmdline[] = {
- "/sbin/quotacheck",
+ QUOTACHECK,
"-anug",
NULL
};
- int r = EXIT_FAILURE;
pid_t pid;
if (argc > 1) {
@@ -102,23 +102,21 @@ int main(int argc, char *argv[]) {
if (!arg_force) {
if (arg_skip)
- return 0;
+ return EXIT_SUCCESS;
if (access("/run/systemd/quotacheck", F_OK) < 0)
- return 0;
+ return EXIT_SUCCESS;
}
- if ((pid = fork()) < 0) {
+ pid = fork();
+ if (pid < 0) {
log_error("fork(): %m");
- goto finish;
+ return EXIT_FAILURE;
} else if (pid == 0) {
/* Child */
execv(cmdline[0], (char**) cmdline);
_exit(1); /* Operational error */
}
- r = wait_for_terminate_and_warn("quotacheck", pid) == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
-
-finish:
- return r;
+ return wait_for_terminate_and_warn("quotacheck", pid) >= 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}