Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:49880 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 37495 invoked from network); 7 Oct 2010 04:16:37 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 7 Oct 2010 04:16:37 -0000 Authentication-Results: pb1.pair.com smtp.mail=huixinchen@baidu.com; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=huixinchen@baidu.com; sender-id=unknown Received-SPF: error (pb1.pair.com: domain baidu.com from 61.135.163.61 cause and error) X-PHP-List-Original-Sender: huixinchen@baidu.com X-Host-Fingerprint: 61.135.163.61 mx1.baidu.com Windows 2000 SP4, XP SP1 Received: from [61.135.163.61] ([61.135.163.61:19960] helo=Tc-ite-Edge03.internal.baidu.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id AB/06-06116-F994DAC4 for ; Thu, 07 Oct 2010 00:16:36 -0400 Received: from tc-ite-hub03.internal.baidu.com (10.23.103.22) by tc-ite-edge03.internal.baidu.com (10.23.102.18) with Microsoft SMTP Server (TLS) id 8.2.254.0; Thu, 7 Oct 2010 12:16:27 +0800 Received: from [192.168.0.100] (10.23.102.14) by email.baidu.com (10.23.103.26) with Microsoft SMTP Server (TLS) id 8.1.240.5; Thu, 7 Oct 2010 12:16:27 +0800 Message-ID: <4CAD499B.7020502@baidu.com> Date: Thu, 7 Oct 2010 12:16:27 +0800 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.9) Gecko/20100915 Lightning/1.0b2 Thunderbird/3.1.4 MIME-Version: 1.0 To: Content-Type: multipart/mixed; boundary="------------090501060009050303010800" Subject: [PATCH]call exit in user error handler cause PHP stream core dump From: huixinchen@baidu.com (=?UTF-8?B?5oOg5paw5a64?=) --------------090501060009050303010800 Content-Type: multipart/related; boundary="------------060508010500040804010807" --------------060508010500040804010807 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: 8bit Hi:
because in PHP exit is implements by set/longjmp

when use set_error_handler,  and call exit in use_handler, 

according to the normal sequence 

1. php_stream_wrapper_log_error
2. php_stream_display_wrapper_errors
      -> php_error_docref1
3. php_stream_tidy_wrapper_error_log

the actual execution sequence will be:
1. php_stream_wrapper_log_error
2. php_stream_display_wrapper_errors
      -> php_error_docref1
3. use error handler
4. zend_bailout 
the php_stream_tidy_wrapper_error_log to be miss called. then cause wrap->err_count doesn't reset to zero after request shutdown. considering the PHP stream wrapper is a persistent struct, when a new request coming the following code will code coredump in php_stream_display_wrapper_errors for (i = 0, l = 0; i < wrapper->err_count; i++) { l += strlen(wrapper->err_stack[i]); //core if (i < wrapper->err_count - 1) { l += brlen; } } bug : http://bugs.php.net/bug.php?id=52935 thanks


--
Baidu 惠新宸 Xinchen.Hui | Engineer @ ECOM | (+8610)59926238 | Hi laruence
--------------060508010500040804010807 Content-Type: image/jpeg; name="baidu_log.jpg" Content-Transfer-Encoding: base64 Content-ID: Content-Disposition: inline; filename="baidu_log.jpg" Content-Description: baidu_log.jpg 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 --------------060508010500040804010807 Content-Type: image/jpeg; name="hi_log.jpg" Content-Transfer-Encoding: base64 Content-ID: Content-Disposition: inline; filename="hi_log.jpg" Content-Description: hi_log.jpg /9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAEBAQEBAQEBAQEBAQECAgMCAgICAgQDAwIDBQQF BQUEBAQFBgcGBQUHBgQEBgkGBwgICAgIBQYJCgkICgcICAj/2wBDAQEBAQICAgQCAgQIBQQF CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj/wAAR CAAQABADAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAwYICv/EACIQAAEEAwACAgMA AAAAAAAAAAMBAgQGBQcIEhMAERYiMv/EABYBAQEBAAAAAAAAAAAAAAAAAAcGCP/EACYRAAIB AwQCAQUBAAAAAAAAAAECAwQREgUGEyEABxQiIzEyUWL/2gAMAwEAAhEDEQA/ANUm9e0qlzVu jjzVe47ElUrO0CXCNZblmLwLDYqsSsJHYRFVDh8fXJkGYBiDPG8V9aL7lcrFYPX3p2t3HoOq atp2ck9DwYwxxmR5eZ2U2xNxgFLGytcA/qBfyI3Lvim0qvpKOqsqVGf1swVUwUHu/RyJt+R3 /fBYvtioXnqjFc7aps67Jr8/VabGr1+xF2BOxSm/IlwqwfVHGopLGFY9zzkORftjheHl+3wI 1aqrNP3C23NQpnhmSISMHDI63YAKY2UMLghgT+QRYWIPmm6H1RBVerx7Lpq1XjNf8ERKoINq fnMolD2Pd0wCf6z6t4vde8h0zb3QvMmw91vqeU1fribc8i3CWWtgyuIuTM6ESemSUz/VGJDO JCsaQJPajRK1Wuaq/GvZXtzUdvaBquj6XnHNXcGM0crRvFwuWOOIybkVihs6WF75A28zPuHZ NLqeo0dbWAPHT8l42UMr5qAL36GJAYdHv+fnybOOeTcFyUzRGGye76jsKi1ysmp0qa3WsTHy 8iY1nPm0lgz6ONJcBrpYYzsWwzwL4klf2jmpK+4N4Pu7fFVvIxCAVCInF9LspRUS/NirEEJf DEKCb9kX8W9ja5BonrOL16I5JJI6tqkTc8ojxaMpx/DuYcwTl8m/Lj9v9OvP/9k= --------------060508010500040804010807-- --------------090501060009050303010800 Content-Type: text/plain; name="php_5_2_14_fixed.patch.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="php_5_2_14_fixed.patch.txt" Content-Description: php_5_2_14_fixed.patch.txt ZGlmZiAtTmF1ciBwaHAtNS4yLjE0L21haW4vc3RyZWFtcy9zdHJlYW1zLmMgcGhwLTUuMi4x NC1uZXcvbWFpbi9zdHJlYW1zL3N0cmVhbXMuYwotLS0gcGhwLTUuMi4xNC9tYWluL3N0cmVh bXMvc3RyZWFtcy5jCTIwMTAtMDktMjcgMjM6Mjk6MTMuMDAwMDAwMDAwICswODAwCisrKyBw aHAtNS4yLjE0LW5ldy9tYWluL3N0cmVhbXMvc3RyZWFtcy5jCTIwMTAtMDktMjggMTA6Mzg6 MjIuMDAwMDAwMDAwICswODAwCkBAIC0xNzUsNiArMTc1LDcgQEAKIAl9CiAKIAlwaHBfc3Ry aXBfdXJsX3Bhc3N3ZCh0bXApOworCXBocF9zdHJlYW1fdGlkeV93cmFwcGVyX2Vycm9yX2xv Zyh3cmFwcGVyIFRTUk1MU19DQyk7CiAJcGhwX2Vycm9yX2RvY3JlZjEoTlVMTCBUU1JNTFNf Q0MsIHRtcCwgRV9XQVJOSU5HLCAiJXM6ICVzIiwgY2FwdGlvbiwgbXNnKTsKIAllZnJlZSh0 bXApOwogCWlmIChmcmVlX21zZykgewpAQCAtMTc3Myw3ICsxNzc0LDYgQEAKIAlpZiAoc3Ry ZWFtID09IE5VTEwgJiYgKG9wdGlvbnMgJiBSRVBPUlRfRVJST1JTKSkgewogCQlwaHBfc3Ry ZWFtX2Rpc3BsYXlfd3JhcHBlcl9lcnJvcnMod3JhcHBlciwgcGF0aCwgImZhaWxlZCB0byBv cGVuIGRpciIgVFNSTUxTX0NDKTsKIAl9Ci0JcGhwX3N0cmVhbV90aWR5X3dyYXBwZXJfZXJy b3JfbG9nKHdyYXBwZXIgVFNSTUxTX0NDKTsKIAogCXJldHVybiBzdHJlYW07CiB9CkBAIC0x ODk2LDcgKzE4OTYsNiBAQAogCQkJKm9wZW5lZF9wYXRoID0gTlVMTDsKIAkJfQogCX0KLQlw aHBfc3RyZWFtX3RpZHlfd3JhcHBlcl9lcnJvcl9sb2cod3JhcHBlciBUU1JNTFNfQ0MpOwog I2lmIFpFTkRfREVCVUcKIAlpZiAoc3RyZWFtID09IE5VTEwgJiYgY29weV9vZl9wYXRoICE9 IE5VTEwpIHsKIAkJcGVmcmVlKGNvcHlfb2ZfcGF0aCwgcGVyc2lzdGVudCk7Cg== --------------090501060009050303010800--