]> granicus.if.org Git - php/commitdiff
- Fixed bug #52935 (call exit in user_error_handler cause stream relate core).
authorGustavo André dos Santos Lopes <cataphract@php.net>
Tue, 5 Jul 2011 16:09:06 +0000 (16:09 +0000)
committerGustavo André dos Santos Lopes <cataphract@php.net>
Tue, 5 Jul 2011 16:09:06 +0000 (16:09 +0000)
main/streams/streams.c

index 673795971a40c302ec67555c6b65453de88d2064..15c1454547ac39ccfec2cec258846b38dc64c0d2 100755 (executable)
@@ -163,6 +163,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) {
@@ -207,7 +208,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);