From c1db9d4a87cd8d6d7ba376f467bb5394589c4d1e Mon Sep 17 00:00:00 2001 From: Pierre Joye Date: Tue, 13 Sep 2011 10:38:12 +0000 Subject: [PATCH] - do not display the crt warnings anymore by default. It is enough to simply fail from a user land pov as it is the case on posix platforms --- UPGRADING | 3 +++ main/main.c | 24 +++++++++++++++--------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/UPGRADING b/UPGRADING index 957b8ac867..06a64cfe43 100755 --- a/UPGRADING +++ b/UPGRADING @@ -363,6 +363,9 @@ UPGRADE NOTES - PHP X.Y three times. - Changed E_ALL to include E_STRICT. Recommended production value changed to E_ALL & ~E_DEPRECATED & ~E_STRICT. +- a new directive, called windows_show_crt_warning, has been introduced. + This directive shows the CRT warnings when enabled. These warnings were + displayed by default until now. It is disabled by default. ==================== 12. Syntax additions diff --git a/main/main.c b/main/main.c index 64100ca7a6..4a70b2b691 100644 --- a/main/main.c +++ b/main/main.c @@ -502,6 +502,9 @@ PHP_INI_BEGIN() STD_PHP_INI_ENTRY("user_ini.filename", ".user.ini", PHP_INI_SYSTEM, OnUpdateString, user_ini_filename, php_core_globals, core_globals) STD_PHP_INI_ENTRY("user_ini.cache_ttl", "300", PHP_INI_SYSTEM, OnUpdateLong, user_ini_cache_ttl, php_core_globals, core_globals) STD_PHP_INI_BOOLEAN("exit_on_timeout", "0", PHP_INI_ALL, OnUpdateBool, exit_on_timeout, php_core_globals, core_globals) +#ifdef PHP_WIN32 + STD_PHP_INI_BOOLEAN("windows_show_crt_warning", "0", PHP_INI_ALL, OnUpdateBool, windows_show_crt_warning, php_core_globals, core_globals) +#endif PHP_INI_END() /* }}} */ @@ -1839,18 +1842,21 @@ void dummy_invalid_parameter_handler( int len; if (!called) { - called = 1; - if (function) { - if (file) { - len = _snprintf(buf, sizeof(buf)-1, "Invalid parameter detected in CRT function '%ws' (%ws:%d)", function, file, line); + TSRMLS_FETCH(); + if(PG(windows_show_crt_warning)) { + called = 1; + if (function) { + if (file) { + len = _snprintf(buf, sizeof(buf)-1, "Invalid parameter detected in CRT function '%ws' (%ws:%d)", function, file, line); + } else { + len = _snprintf(buf, sizeof(buf)-1, "Invalid parameter detected in CRT function '%ws'", function); + } } else { - len = _snprintf(buf, sizeof(buf)-1, "Invalid parameter detected in CRT function '%ws'", function); + len = _snprintf(buf, sizeof(buf)-1, "Invalid CRT parameter detected (function not known)"); } - } else { - len = _snprintf(buf, sizeof(buf)-1, "Invalid CRT parameters detected"); + zend_error(E_WARNING, "%s", buf); + called = 0; } - zend_error(E_WARNING, "%s", buf); - called = 0; } } #endif -- 2.50.1