felipe                                   Wed, 14 Sep 2011 01:45:57 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=316696

Log:
- Fixed memory leak when calling SessionHandler::open() several times

Changed paths:
    U   php/php-src/branches/PHP_5_4/ext/session/mod_files.c
    A   
php/php-src/branches/PHP_5_4/ext/session/tests/sessionhandler_open_001.phpt
    U   php/php-src/trunk/ext/session/mod_files.c
    A   php/php-src/trunk/ext/session/tests/sessionhandler_open_001.phpt

Modified: php/php-src/branches/PHP_5_4/ext/session/mod_files.c
===================================================================
--- php/php-src/branches/PHP_5_4/ext/session/mod_files.c        2011-09-14 
01:42:25 UTC (rev 316695)
+++ php/php-src/branches/PHP_5_4/ext/session/mod_files.c        2011-09-14 
01:45:57 UTC (rev 316696)
@@ -311,6 +311,9 @@
        data->basedir_len = strlen(save_path);
        data->basedir = estrndup(save_path, data->basedir_len);

+       if (PS_GET_MOD_DATA()) {
+               ps_close_files(mod_data TSRMLS_CC);
+       }
        PS_SET_MOD_DATA(data);

        return SUCCESS;

Added: 
php/php-src/branches/PHP_5_4/ext/session/tests/sessionhandler_open_001.phpt
===================================================================
--- php/php-src/branches/PHP_5_4/ext/session/tests/sessionhandler_open_001.phpt 
                        (rev 0)
+++ php/php-src/branches/PHP_5_4/ext/session/tests/sessionhandler_open_001.phpt 
2011-09-14 01:45:57 UTC (rev 316696)
@@ -0,0 +1,19 @@
+--TEST--
+Testing repated SessionHandler::open() calls
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--FILE--
+<?php
+
+ini_set('session.save_handler', 'files');
+$x = new SessionHandler;
+$x->open('','');
+$x->open('','');
+$x->open('','');
+$x->open('','');
+
+print "Done!\n";
+
+?>
+--EXPECTF--
+Done!

Modified: php/php-src/trunk/ext/session/mod_files.c
===================================================================
--- php/php-src/trunk/ext/session/mod_files.c   2011-09-14 01:42:25 UTC (rev 
316695)
+++ php/php-src/trunk/ext/session/mod_files.c   2011-09-14 01:45:57 UTC (rev 
316696)
@@ -311,6 +311,9 @@
        data->basedir_len = strlen(save_path);
        data->basedir = estrndup(save_path, data->basedir_len);

+       if (PS_GET_MOD_DATA()) {
+               ps_close_files(mod_data TSRMLS_CC);
+       }
        PS_SET_MOD_DATA(data);

        return SUCCESS;

Added: php/php-src/trunk/ext/session/tests/sessionhandler_open_001.phpt
===================================================================
--- php/php-src/trunk/ext/session/tests/sessionhandler_open_001.phpt            
                (rev 0)
+++ php/php-src/trunk/ext/session/tests/sessionhandler_open_001.phpt    
2011-09-14 01:45:57 UTC (rev 316696)
@@ -0,0 +1,19 @@
+--TEST--
+Testing repated SessionHandler::open() calls
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--FILE--
+<?php
+
+ini_set('session.save_handler', 'files');
+$x = new SessionHandler;
+$x->open('','');
+$x->open('','');
+$x->open('','');
+$x->open('','');
+
+print "Done!\n";
+
+?>
+--EXPECTF--
+Done!

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to