com php-src: fix bug #69833 mcrypt fd caching not working: ext/mcrypt/mcrypt.c

From: Date: Tue, 11 Aug 2015 14:49:28 +0000
Subject: com php-src: fix bug #69833 mcrypt fd caching not working: ext/mcrypt/mcrypt.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-88472@lists.php.net to get a copy of this message
Commit: 80bc2133cd453c9a5981023d27e37bfd845172a1 Author: Anatol Belski <ab@php.net> Tue, 11 Aug 2015 16:49:28 +0200 Parents: 79cd9a18b505e8d77d16abe6ef146d4b4ff02ed9 Branches: PHP-5.6 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=80bc2133cd453c9a5981023d27e37bfd845172a1 Log: fix bug #69833 mcrypt fd caching not working Bugs: https://bugs.php.net/69833 Changed paths: M ext/mcrypt/mcrypt.c Diff: diff --git a/ext/mcrypt/mcrypt.c b/ext/mcrypt/mcrypt.c index 4654850..5b34112 100644 --- a/ext/mcrypt/mcrypt.c +++ b/ext/mcrypt/mcrypt.c @@ -288,6 +288,8 @@ const zend_function_entry mcrypt_functions[] = { /* {{{ */ static PHP_MINFO_FUNCTION(mcrypt); static PHP_MINIT_FUNCTION(mcrypt); static PHP_MSHUTDOWN_FUNCTION(mcrypt); +static PHP_GINIT_FUNCTION(mcrypt); +static PHP_GSHUTDOWN_FUNCTION(mcrypt); ZEND_DECLARE_MODULE_GLOBALS(mcrypt) @@ -300,8 +302,8 @@ zend_module_entry mcrypt_module_entry = { PHP_MINFO(mcrypt), NO_VERSION_YET, PHP_MODULE_GLOBALS(mcrypt), - NULL, - NULL, + PHP_GINIT(mcrypt), + PHP_GSHUTDOWN(mcrypt), NULL, STANDARD_MODULE_PROPERTIES_EX }; @@ -381,6 +383,25 @@ static void php_mcrypt_module_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC) /* {{{ } /* }}} */ +static PHP_GINIT_FUNCTION(mcrypt) +{ + mcrypt_globals->fd[RANDOM] = -1; + mcrypt_globals->fd[URANDOM] = -1; +} + +static PHP_GSHUTDOWN_FUNCTION(mcrypt) +{ + if (mcrypt_globals->fd[RANDOM] > 0) { + close(mcrypt_globals->fd[RANDOM]); + mcrypt_globals->fd[RANDOM] = -1; + } + + if (mcrypt_globals->fd[URANDOM] > 0) { + close(mcrypt_globals->fd[URANDOM]); + mcrypt_globals->fd[URANDOM] = -1; + } +} + static PHP_MINIT_FUNCTION(mcrypt) /* {{{ */ { le_mcrypt = zend_register_list_destructors_ex(php_mcrypt_module_dtor, NULL, "mcrypt", module_number); @@ -438,9 +459,6 @@ static PHP_MINIT_FUNCTION(mcrypt) /* {{{ */ php_stream_filter_register_factory("mcrypt.*", &php_mcrypt_filter_factory TSRMLS_CC); php_stream_filter_register_factory("mdecrypt.*", &php_mcrypt_filter_factory TSRMLS_CC); - MCG(fd[RANDOM]) = -1; - MCG(fd[URANDOM]) = -1; - return SUCCESS; } /* }}} */ @@ -450,14 +468,6 @@ static PHP_MSHUTDOWN_FUNCTION(mcrypt) /* {{{ */ php_stream_filter_unregister_factory("mcrypt.*" TSRMLS_CC); php_stream_filter_unregister_factory("mdecrypt.*" TSRMLS_CC); - if (MCG(fd[RANDOM]) > 0) { - close(MCG(fd[RANDOM])); - } - - if (MCG(fd[URANDOM]) > 0) { - close(MCG(fd[URANDOM])); - } - UNREGISTER_INI_ENTRIES(); return SUCCESS; }

« previous php.cvs (#88472) next »