From c1fcc8042180b2b6e3c9acb525e730bd6d0c75d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 8 Dec 2025 10:52:11 +0100 Subject: [PATCH] journal-upload: drop custom option error handling The line to set opterr=0 was added in the initial commit in 3d090cc6f34e5970765dd1e7ee5e648a056d180d. But afaict, this never worked as intended, because ':' must be the first char in optstring given to getopt_long() for it to return ':' for a missing option value. Since this wasn't set, getopt_long() would return '?', and the missing value would be handled as an unknown option: $ build/systemd-journal-upload --key Unknown option --key. $ build/systemd-journal-upload --asdf Unknown option --asdf. Let's just do the standard thing: $ build/systemd-journal-upload --key build/systemd-journal-upload: option '--key' requires an argument $ build/systemd-journal-upload --asdf build/systemd-journal-upload: unrecognized option '--asdf' --- src/journal-remote/journal-upload.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/journal-remote/journal-upload.c b/src/journal-remote/journal-upload.c index decb6df5da..c6123146a5 100644 --- a/src/journal-remote/journal-upload.c +++ b/src/journal-remote/journal-upload.c @@ -776,8 +776,6 @@ static int parse_argv(int argc, char *argv[]) { assert(argc >= 0); assert(argv); - opterr = 0; - while ((c = getopt_long(argc, argv, "hu:mM:D:", options, NULL)) >= 0) switch (c) { case 'h': @@ -882,14 +880,7 @@ static int parse_argv(int argc, char *argv[]) { break; case '?': - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Unknown option %s.", - argv[optind - 1]); - - case ':': - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Missing argument to %s.", - argv[optind - 1]); + return -EINVAL; default: assert_not_reached();