From 9644da5c3ffcf0fb18eca54a61aedb5f53a1c352 Mon Sep 17 00:00:00 2001 From: Quentin Rameau Date: Sun, 25 Aug 2019 11:29:45 +0200 Subject: [PATCH] Fix missing argument handling in psql getopt When passing an argument option with a missing argument, strcmp would be called with the argv terminating NULL. --- src/bin/psql/startup.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c index 4730c73396..cffbfc864e 100644 --- a/src/bin/psql/startup.c +++ b/src/bin/psql/startup.c @@ -667,12 +667,13 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts *options) break; case '?': /* Actual help option given */ - if (strcmp(argv[optind - 1], "-?") == 0) + if (optind <= argc && + strcmp(argv[optind - 1], "-?") == 0) { usage(NOPAGER); exit(EXIT_SUCCESS); } - /* unknown option reported by getopt */ + /* unknown option or missing argument */ else goto unknown_option; break; -- 2.23.0