From: Felipe Pena Date: Wed, 14 Sep 2011 01:45:57 +0000 (+0000) Subject: - Fixed memory leak when calling SessionHandler::open() several times X-Git-Tag: php-5.5.0alpha1~1138 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a99f146ec4f7a6aed9a3e31b2c9b5b276f878cc1;p=php - Fixed memory leak when calling SessionHandler::open() several times --- diff --git a/ext/session/mod_files.c b/ext/session/mod_files.c index c3c35093c3..b0687fac15 100644 --- a/ext/session/mod_files.c +++ b/ext/session/mod_files.c @@ -311,6 +311,9 @@ PS_OPEN_FUNC(files) 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; diff --git a/ext/session/tests/sessionhandler_open_001.phpt b/ext/session/tests/sessionhandler_open_001.phpt new file mode 100644 index 0000000000..6ade9e00a5 --- /dev/null +++ b/ext/session/tests/sessionhandler_open_001.phpt @@ -0,0 +1,19 @@ +--TEST-- +Testing repated SessionHandler::open() calls +--SKIPIF-- + +--FILE-- +open('',''); +$x->open('',''); +$x->open('',''); +$x->open('',''); + +print "Done!\n"; + +?> +--EXPECTF-- +Done!