summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Weinand <bobwei9@hotmail.com>2016-10-16 15:41:37 +0200
committerBob Weinand <bobwei9@hotmail.com>2016-10-16 15:41:37 +0200
commitd82da7de3a460f1eee3d34448be79bca3de7abc1 (patch)
treec8771feea4757be23dfb577f9bc72d8bdde67e3c
parente93eaee1648a55d3d58788e2b898e8fb00f0c13c (diff)
downloadphp-git-d82da7de3a460f1eee3d34448be79bca3de7abc1.tar.gz
Fixed bug #71234 (INI files are loaded even invoked as phpdbg -n --version)
-rw-r--r--NEWS3
-rw-r--r--sapi/phpdbg/phpdbg.c82
2 files changed, 51 insertions, 34 deletions
diff --git a/NEWS b/NEWS
index 67401958d1..08b4f64ac3 100644
--- a/NEWS
+++ b/NEWS
@@ -23,7 +23,8 @@ PHP NEWS
. Add -s command line option / stdin command for reading script from stdin.
(Bob)
. Ignore non-executable opcodes in line mode of phpdbg_end_oplog(). (Bob)
- . Fixed bug #70776 (Simple SIGINT does not have any effect). (Bob)
+ . Fixed bug #70776 (Simple SIGINT does not have any effect with -rr). (Bob)
+ . Fixed bug #71234 (INI files are loaded even invoked as -n --version). (Bob)
- Session:
. Fixed bug #73273 (session_unset() empties values from all variables in which
diff --git a/sapi/phpdbg/phpdbg.c b/sapi/phpdbg/phpdbg.c
index e7012d0905..de73c69ee7 100644
--- a/sapi/phpdbg/phpdbg.c
+++ b/sapi/phpdbg/phpdbg.c
@@ -1362,6 +1362,7 @@ int main(int argc, char **argv) /* {{{ */
int exit_status;
char *read_from_stdin = NULL;
zend_string *backup_phpdbg_compile = NULL;
+ zend_bool show_help = 0, show_version = 0;
#ifndef _WIN32
struct sigaction sigio_struct;
@@ -1556,34 +1557,11 @@ phpdbg_main:
} break;
case 'h': {
- sapi_startup(phpdbg);
- phpdbg->startup(phpdbg);
- PHPDBG_G(flags) = 0;
- /* It ain't gonna proceed to real execution anyway,
- but the correct descriptor is needed already. */
- PHPDBG_G(io)[PHPDBG_STDOUT].ptr = stdout;
- PHPDBG_G(io)[PHPDBG_STDOUT].fd = fileno(stdout);
- phpdbg_set_prompt(PHPDBG_DEFAULT_PROMPT);
- phpdbg_do_help(NULL);
- sapi_deactivate();
- sapi_shutdown();
- return 0;
+ show_help = 1;
} break;
case 'V': {
- sapi_startup(phpdbg);
- phpdbg->startup(phpdbg);
- printf(
- "phpdbg %s (built: %s %s)\nPHP %s, Copyright (c) 1997-2016 The PHP Group\n%s",
- PHPDBG_VERSION,
- __DATE__,
- __TIME__,
- PHP_VERSION,
- get_zend_version()
- );
- sapi_deactivate();
- sapi_shutdown();
- return 0;
+ show_version = 1;
} break;
}
@@ -1662,6 +1640,51 @@ phpdbg_main:
/* set flags from command line */
PHPDBG_G(flags) = flags;
+ /* set default colors */
+ phpdbg_set_color_ex(PHPDBG_COLOR_PROMPT, PHPDBG_STRL("white-bold"));
+ phpdbg_set_color_ex(PHPDBG_COLOR_ERROR, PHPDBG_STRL("red-bold"));
+ phpdbg_set_color_ex(PHPDBG_COLOR_NOTICE, PHPDBG_STRL("green"));
+
+ /* set default prompt */
+ phpdbg_set_prompt(PHPDBG_DEFAULT_PROMPT);
+
+ if (show_version || show_help) {
+ /* It ain't gonna proceed to real execution anyway,
+ but the correct descriptor is needed already. */
+ PHPDBG_G(io)[PHPDBG_STDOUT].ptr = stdout;
+ PHPDBG_G(io)[PHPDBG_STDOUT].fd = fileno(stdout);
+ if (show_help) {
+ phpdbg_do_help(NULL);
+ } else if (show_version) {
+ phpdbg_out(
+ "phpdbg %s (built: %s %s)\nPHP %s, Copyright (c) 1997-2016 The PHP Group\n%s",
+ PHPDBG_VERSION,
+ __DATE__,
+ __TIME__,
+ PHP_VERSION,
+ get_zend_version()
+ );
+ }
+ sapi_deactivate();
+ sapi_shutdown();
+ if (ini_entries) {
+ free(ini_entries);
+ }
+ if (ini_override) {
+ free(ini_override);
+ }
+ if (exec) {
+ free(exec);
+ }
+ if (oplog_file) {
+ free(oplog_file);
+ }
+ if (init_file) {
+ free(init_file);
+ }
+ goto free_and_return;
+ }
+
if (settings > (zend_phpdbg_globals *) 0x2) {
#ifdef ZTS
*((zend_phpdbg_globals *) (*((void ***) TSRMLS_CACHE))[TSRM_UNSHUFFLE_RSRC_ID(phpdbg_globals_id)]) = *settings;
@@ -1821,14 +1844,6 @@ phpdbg_main:
oplog_file = NULL;
}
- /* set default colors */
- phpdbg_set_color_ex(PHPDBG_COLOR_PROMPT, PHPDBG_STRL("white-bold"));
- phpdbg_set_color_ex(PHPDBG_COLOR_ERROR, PHPDBG_STRL("red-bold"));
- phpdbg_set_color_ex(PHPDBG_COLOR_NOTICE, PHPDBG_STRL("green"));
-
- /* set default prompt */
- phpdbg_set_prompt(PHPDBG_DEFAULT_PROMPT);
-
{
php_stream_wrapper *wrapper = zend_hash_str_find_ptr(php_stream_get_url_stream_wrappers_hash(), ZEND_STRL("php"));
PHPDBG_G(orig_url_wrap_php) = wrapper->wops->stream_opener;
@@ -2131,6 +2146,7 @@ phpdbg_out:
sapi_shutdown();
}
+free_and_return:
if (read_from_stdin) {
free(read_from_stdin);
read_from_stdin = NULL;