summaryrefslogtreecommitdiff
path: root/main/streams/streams.c
diff options
context:
space:
mode:
authorGustavo André dos Santos Lopes <cataphract@php.net>2011-07-05 16:09:06 +0000
committerGustavo André dos Santos Lopes <cataphract@php.net>2011-07-05 16:09:06 +0000
commit987c843674a7af7a9c5da018e4470469131d704a (patch)
treea013151c3ffee066d705fcb4d0b2e1a6c9de05bc /main/streams/streams.c
parentd5899d0b33619dd2de56772db95a9014b77b1a7c (diff)
downloadphp-git-987c843674a7af7a9c5da018e4470469131d704a.tar.gz
- Fixed bug #52935 (call exit in user_error_handler cause stream relate core).
Diffstat (limited to 'main/streams/streams.c')
-rwxr-xr-xmain/streams/streams.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/main/streams/streams.c b/main/streams/streams.c
index eb2eb07082..81adff8137 100755
--- a/main/streams/streams.c
+++ b/main/streams/streams.c
@@ -154,6 +154,7 @@ void php_stream_display_wrapper_errors(php_stream_wrapper *wrapper, const char *
char *tmp = estrdup(path);
char *msg;
int free_msg = 0;
+ php_stream_wrapper orig_wrapper;
if (wrapper) {
if (wrapper->err_count > 0) {
@@ -198,7 +199,16 @@ void php_stream_display_wrapper_errors(php_stream_wrapper *wrapper, const char *
}
php_strip_url_passwd(tmp);
+ if (wrapper) {
+ /* see bug #52935 */
+ orig_wrapper = *wrapper;
+ wrapper->err_stack = NULL;
+ wrapper->err_count = 0;
+ }
php_error_docref1(NULL TSRMLS_CC, tmp, E_WARNING, "%s: %s", caption, msg);
+ if (wrapper) {
+ *wrapper = orig_wrapper;
+ }
efree(tmp);
if (free_msg) {
efree(msg);