Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:43384 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 92950 invoked from network); 18 Mar 2009 02:15:07 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 18 Mar 2009 02:15:07 -0000 Authentication-Results: pb1.pair.com smtp.mail=chris_se@gmx.net; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=chris_se@gmx.net; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmx.net designates 213.165.64.20 as permitted sender) X-PHP-List-Original-Sender: chris_se@gmx.net X-Host-Fingerprint: 213.165.64.20 mail.gmx.net Received: from [213.165.64.20] ([213.165.64.20:42975] helo=mail.gmx.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id EA/2B-41920-A2950C94 for ; Tue, 17 Mar 2009 21:15:07 -0500 Received: (qmail invoked by alias); 18 Mar 2009 02:15:03 -0000 Received: from p54A17C15.dip.t-dialin.net (EHLO chris-se.dyndns.org) [84.161.124.21] by mail.gmx.net (mp071) with SMTP; 18 Mar 2009 03:15:03 +0100 X-Authenticated: #186999 X-Provags-ID: V01U2FsdGVkX1+GQahTctSGFVkJ20FZCTIE4GQrbw4lk7TA6H12Qt cIHqPrHPhaaxID Received: from [192.168.0.175] (HSI-KBW-082-212-059-033.hsi.kabelbw.de [82.212.59.33]) by chris-se.dyndns.org (Postfix) with ESMTP id 9D50532AE for ; Wed, 18 Mar 2009 03:13:40 +0100 (CET) Message-ID: <49C05943.10003@gmx.net> Date: Wed, 18 Mar 2009 03:15:31 +0100 User-Agent: Thunderbird 2.0.0.19 (X11/20081209) MIME-Version: 1.0 To: php-dev List X-Enigmail-Version: 0.95.7 Content-Type: multipart/mixed; boundary="------------020500090304030001040409" X-Y-GMX-Trusted: 0 X-FuHaFi: 0.65,0.5 Subject: Memory Leak in ob_get_clean() / ob_get_flush () From: chris_se@gmx.net (Christian Seiler) --------------020500090304030001040409 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hi, When running 'make test' on my system I discovered that tests/output/ob_start_basic_unerasable_003.phpt and tests/output/ob_start_basic_unerasable_004.phpt produced memory leaks - due to the fact that they first fetch the buffer into return_value but then do RETURN_FALSE if they detect an error and thus leak the copied buffer. I attached a patch that fixes that to this mail. Any objections to me applying this for 5.3 and HEAD? (after 5.3 RC1 when commits are allowed again of course) Any side-effects I didn't think about? Regards, Christian --------------020500090304030001040409 Content-Type: text/plain; name="output-memleak.patch.txt" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="output-memleak.patch.txt" SW5kZXg6IG1haW4vb3V0cHV0LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3JlcG9zaXRv cnkvcGhwLXNyYy9tYWluL291dHB1dC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE2Ny4y LjMuMi40LjIuMTIKZGlmZiAtdSAtcCAtcjEuMTY3LjIuMy4yLjQuMi4xMiBvdXRwdXQuYwot LS0gbWFpbi9vdXRwdXQuYwkxMyBGZWIgMjAwOSAxMTo0ODoxNyAtMDAwMAkxLjE2Ny4yLjMu Mi40LjIuMTIKKysrIG1haW4vb3V0cHV0LmMJMTggTWFyIDIwMDkgMDI6MDk6MTMgLTAwMDAK QEAgLTg2NywxMCArODY3LDEyIEBAIFBIUF9GVU5DVElPTihvYl9nZXRfZmx1c2gpCiAJLyog ZXJyb3IgY2hlY2tzICovCiAJaWYgKCFPRyhvYl9uZXN0aW5nX2xldmVsKSkgewogCQlwaHBf ZXJyb3JfZG9jcmVmKCJyZWYub3V0Y29udHJvbCIgVFNSTUxTX0NDLCBFX05PVElDRSwgImZh aWxlZCB0byBkZWxldGUgYW5kIGZsdXNoIGJ1ZmZlci4gTm8gYnVmZmVyIHRvIGRlbGV0ZSBv ciBmbHVzaC4iKTsKKwkJenZhbF9kdG9yKHJldHVybl92YWx1ZSk7CiAJCVJFVFVSTl9GQUxT RTsKIAl9CiAJaWYgKE9HKG9iX25lc3RpbmdfbGV2ZWwpICYmICFPRyhhY3RpdmVfb2JfYnVm ZmVyKS5zdGF0dXMgJiYgIU9HKGFjdGl2ZV9vYl9idWZmZXIpLmVyYXNlKSB7CiAJCXBocF9l cnJvcl9kb2NyZWYoInJlZi5vdXRjb250cm9sIiBUU1JNTFNfQ0MsIEVfTk9USUNFLCAiZmFp bGVkIHRvIGRlbGV0ZSBidWZmZXIgJXMuIiwgT0coYWN0aXZlX29iX2J1ZmZlcikuaGFuZGxl cl9uYW1lKTsKKwkJenZhbF9kdG9yKHJldHVybl92YWx1ZSk7CiAJCVJFVFVSTl9GQUxTRTsK IAl9CiAJLyogZmx1c2ggKi8KQEAgLTg5MiwxMCArODk0LDEyIEBAIFBIUF9GVU5DVElPTihv Yl9nZXRfY2xlYW4pCiAJLyogZXJyb3IgY2hlY2tzICovCiAJaWYgKCFPRyhvYl9uZXN0aW5n X2xldmVsKSkgewogCQlwaHBfZXJyb3JfZG9jcmVmKCJyZWYub3V0Y29udHJvbCIgVFNSTUxT X0NDLCBFX05PVElDRSwgImZhaWxlZCB0byBkZWxldGUgYnVmZmVyLiBObyBidWZmZXIgdG8g ZGVsZXRlLiIpOworCQl6dmFsX2R0b3IocmV0dXJuX3ZhbHVlKTsKIAkJUkVUVVJOX0ZBTFNF OwogCX0KIAlpZiAoT0cob2JfbmVzdGluZ19sZXZlbCkgJiYgIU9HKGFjdGl2ZV9vYl9idWZm ZXIpLnN0YXR1cyAmJiAhT0coYWN0aXZlX29iX2J1ZmZlcikuZXJhc2UpIHsKIAkJcGhwX2Vy cm9yX2RvY3JlZigicmVmLm91dGNvbnRyb2wiIFRTUk1MU19DQywgRV9OT1RJQ0UsICJmYWls ZWQgdG8gZGVsZXRlIGJ1ZmZlciAlcy4iLCBPRyhhY3RpdmVfb2JfYnVmZmVyKS5oYW5kbGVy X25hbWUpOworCQl6dmFsX2R0b3IocmV0dXJuX3ZhbHVlKTsKIAkJUkVUVVJOX0ZBTFNFOwog CX0KIAkvKiBkZWxldGUgYnVmZmVyICovCg== --------------020500090304030001040409--