andrey Fri Sep 19 11:38:46 2008 UTC
Added files: (Branch: PHP_5_3)
/php-src/ext/mysqli/tests bug46109.phpt
Modified files:
/php-src/ext/mysqli mysqli_api.c
Log:
MFH:Fix for bug#46019 MySQLi::init() leaks memory
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_api.c?r1=1.118.2.22.2.16.2.20&r2=1.118.2.22.2.16.2.21&diff_format=u
Index: php-src/ext/mysqli/mysqli_api.c
diff -u php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.16.2.20
php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.16.2.21
--- php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.16.2.20 Sat Aug 2
04:46:06 2008
+++ php-src/ext/mysqli/mysqli_api.c Fri Sep 19 11:38:46 2008
@@ -17,7 +17,7 @@
| Ulf Wendel <[EMAIL PROTECTED]>
|
+----------------------------------------------------------------------+
- $Id: mysqli_api.c,v 1.118.2.22.2.16.2.20 2008/08/02 04:46:06 felipe Exp $
+ $Id: mysqli_api.c,v 1.118.2.22.2.16.2.21 2008/09/19 11:38:46 andrey Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -1311,7 +1311,13 @@
PHP_FUNCTION(mysqli_init)
{
MYSQLI_RESOURCE *mysqli_resource;
- MY_MYSQL *mysql = (MY_MYSQL *)ecalloc(1, sizeof(MY_MYSQL));
+ MY_MYSQL *mysql;
+
+ if (getThis() && instanceof_function(Z_OBJCE_P(getThis()),
mysqli_link_class_entry TSRMLS_CC)) {
+ return;
+ }
+
+ mysql = (MY_MYSQL *)ecalloc(1, sizeof(MY_MYSQL));
#if !defined(MYSQLI_USE_MYSQLND)
if (!(mysql->mysql = mysql_init(NULL)))
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/bug46109.phpt?view=markup&rev=1.1
Index: php-src/ext/mysqli/tests/bug46109.phpt
+++ php-src/ext/mysqli/tests/bug46109.phpt
--TEST--
Bug #46109 (MySQLi::init - Memory leaks)
--SKIPIF--
<?php
require_once('skipif.inc');
require_once('skipifconnectfailure.inc');
?>
--FILE--
<?php
include "connect.inc";
$mysqli = new mysqli();
$mysqli->init();
$mysqli->init();
echo "done";
?>
--EXPECTF--
done
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php