X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fjournal%2Fjournalctl.c;h=86453e65c8f9b8c8e362339fba115be1ec50f5b0;hb=69f08c8338560d5d8192e7d49d21cfe93656385e;hp=d406daeae99d6fecca6d3c942d108e424e9da213;hpb=73e231abde39f22097df50542c745e01de879836;p=elogind.git diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index d406daeae..86453e65c 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c @@ -658,6 +658,11 @@ static int parse_argv(int argc, char *argv[]) { return -EINVAL; } + if (arg_action != ACTION_SHOW && optind < argc) { + log_error("Extraneous arguments starting with '%s'", argv[optind]); + return -EINVAL; + } + return 1; } @@ -1285,7 +1290,7 @@ static int setup_keys(void) { n = now(CLOCK_REALTIME); n /= arg_interval; - close_nointr_nofail(fd); + safe_close(fd); fd = mkostemp_safe(k, O_WRONLY|O_CLOEXEC); if (fd < 0) { log_error("Failed to open %s: %m", k); @@ -1384,8 +1389,7 @@ static int setup_keys(void) { r = 0; finish: - if (fd >= 0) - close_nointr_nofail(fd); + safe_close(fd); if (k) { unlink(k); @@ -1651,7 +1655,7 @@ int main(int argc, char *argv[]) { } if (arg_action == ACTION_DISK_USAGE) { - uint64_t bytes; + uint64_t bytes = 0; char sbytes[FORMAT_BYTES_MAX]; r = sd_journal_get_usage(j, &bytes); @@ -1933,5 +1937,7 @@ int main(int argc, char *argv[]) { finish: pager_close(); + strv_free(arg_file); + return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; }