diff options
-rw-r--r-- | src/journal/journalctl.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index 0ec2f331db..0afeef932e 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c @@ -244,8 +244,25 @@ static int parse_argv(int argc, char *argv[]) { log_error("Failed to parse lines '%s'", optarg); return -EINVAL; } - } else - arg_lines = 10; + } else { + int n; + + /* Hmm, no argument? Maybe the next + * word on the command line is + * supposed to be the argument? Let's + * see if there is one, and is + * parsable as a positive + * integer... */ + + if (optind < argc && + safe_atoi(argv[optind], &n) >= 0 && + n >= 0) { + + arg_lines = n; + optind++; + } else + arg_lines = 10; + } break; |