From 6e66e426645938e0e00e00438223ac97d92bf7b0 Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Thu, 8 Apr 2010 15:27:21 +0000 Subject: make sure the actual length of the argument passed matches the length of the argument declared this fixes things like `php --zend-exten=1` or `php-fpm --fpm-con=conf` --- main/getopt.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/main/getopt.c b/main/getopt.c index f3e1f2ed9c..2fd52d8d5a 100644 --- a/main/getopt.c +++ b/main/getopt.c @@ -107,9 +107,15 @@ PHPAPI int php_getopt(int argc, char* const *argv, const opt_struct opts[], char break; } } - optchr = 0; - dash = 0; - arg_start += strlen(opts[php_optidx].opt_name); + + if (arg_end == strlen(opts[php_optidx].opt_name)) { + optchr = 0; + dash = 0; + arg_start += strlen(opts[php_optidx].opt_name); + } else { + (*optind)++; + return (php_opt_error(argc, argv, *optind-1, optchr, OPTERRNF, show_err)); + } } else { if (!dash) { dash = 1; -- cgit v1.2.1