com php-src: Fix infinite loop when running phpdbg via -r(r): sapi/phpdbg/phpdbg.c
| From: | Bob Weinand | Date: | Tue, 16 Jun 2015 21:37:39 +0000 |
| Subject: | com php-src: Fix infinite loop when running phpdbg via -r(r): sapi/phpdbg/phpdbg.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-87301@lists.php.net to get a copy of this message | ||
Commit: 8c4807fe7a78d9a7e73b3943cac0647df641eb2d
Author: Bob Weinand <bobwei9@hotmail.com> Tue, 16 Jun 2015 23:36:20 +0200
Parents: fb346c8f9376d4a0be80e242406c1bb8dbf710f0
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=8c4807fe7a78d9a7e73b3943cac0647df641eb2d
Log:
Fix infinite loop when running phpdbg via -r(r)
Changed paths:
M sapi/phpdbg/phpdbg.c
Diff:
diff --git a/sapi/phpdbg/phpdbg.c b/sapi/phpdbg/phpdbg.c
index eb8369b..7b7ed17 100644
--- a/sapi/phpdbg/phpdbg.c
+++ b/sapi/phpdbg/phpdbg.c
@@ -1021,6 +1021,7 @@ int main(int argc, char **argv) /* {{{ */
char *php_optarg;
int php_optind, opt, show_banner = 1;
long cleaning = -1;
+ zend_bool quit_immediately = 0;
zend_bool remote = 0;
int step = 0;
zend_phpdbg_globals *settings = NULL;
@@ -1086,7 +1087,9 @@ phpdbg_main:
while ((opt = php_getopt(argc, argv, OPTIONS, &php_optarg, &php_optind, 0, 2)) != -1) {
switch (opt) {
case 'r':
- phpdbg_startup_run++;
+ if (settings == NULL) {
+ phpdbg_startup_run++;
+ }
break;
case 'n':
ini_ignore = 1;
@@ -1545,7 +1548,7 @@ phpdbg_interact:
do {
zend_try {
if (phpdbg_startup_run) {
- zend_bool quit_immediately = phpdbg_startup_run > 1;
+ quit_immediately = phpdbg_startup_run > 1;
phpdbg_startup_run = 0;
PHPDBG_COMMAND_HANDLER(run)(NULL);
if (quit_immediately) {
@@ -1691,7 +1694,7 @@ phpdbg_out:
}
- if (cleaning > 0 || remote) {
+ if ((cleaning > 0 || remote) && !quit_immediately) {
goto phpdbg_main;
}