X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fjournal%2Fjournalctl.c;h=86453e65c8f9b8c8e362339fba115be1ec50f5b0;hb=1f89214e6e990a0b552f6854f87f8514ca384956;hp=a328ba11b0d3193daae39d1e18be28fb309ffd57;hpb=39883f622f392d8579f4428fc5a789a102efbb10;p=elogind.git diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index a328ba11b..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); @@ -1933,5 +1937,7 @@ int main(int argc, char *argv[]) { finish: pager_close(); + strv_free(arg_file); + return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; }