[PATCH] Fix missing argument handling in psql getopt

Поиск
Список
Период
Сортировка
От Quentin Rameau
Тема [PATCH] Fix missing argument handling in psql getopt
Дата
Msg-id 20190825100617.GA6087@fifth.space
обсуждение исходный текст
Ответы Re: [PATCH] Fix missing argument handling in psql getopt  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
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




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Sergei Kornilov
Дата:
Сообщение: Re: Change ereport level for QueuePartitionConstraintValidation
Следующее
От: Tom Lane
Дата:
Сообщение: Re: pg_upgrade: Error out on too many command-line arguments