com php-src: Fix bug #63595 GMP memory management conflicts with other libraries using GMP: ext/gmp/gmp.c
| From: | Stanislav Malyshev | Date: | Mon, 03 Nov 2014 19:42:15 +0000 |
| Subject: | com php-src: Fix bug #63595 GMP memory management conflicts with other libraries using GMP: ext/gmp/gmp.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-82942@lists.php.net to get a copy of this message | ||
Commit: 7740edae36fea4e831afc6f1e37eb559dcf597f0
Author: Remi Collet <remi@php.net> Mon, 27 Oct 2014 07:45:34 +0100
Committer: Stanislav Malyshev <stas@php.net> Mon, 3 Nov 2014 11:42:15 -0800
Parents: c351b47ce85a3a147cfa801fa9f0149ab4160834
Branches: PHP-5.4 PHP-5.5 PHP-5.6 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=7740edae36fea4e831afc6f1e37eb559dcf597f0
Log:
Fix bug #63595 GMP memory management conflicts with other libraries using GMP
Drop use of php memory allocators as this raise various conflicts
with other extensions and libraries which use libgmp.
No other solution found.
We cannot for ensure correct use of allocator with shared lib.
Some memory can allocated before php init
Some memory can be freed after php shutdown
Known broken run cases
- php + curl + gnutls + gmp
- mod_gnutls + mod_php + gnutls + gmp
- php + freetds + gnutls + gmp
- php + odbc + freetds + gnutls + gmp
- php + php-mapi (zarafa) + gnutls + gmp
Bugs:
https://bugs.php.net/63595
Changed paths:
M ext/gmp/gmp.c
Diff:
diff --git a/ext/gmp/gmp.c b/ext/gmp/gmp.c
index f51bd8c...b1553fa 100644
--- a/ext/gmp/gmp.c
+++ b/ext/gmp/gmp.c
@@ -324,30 +324,6 @@ static void _php_gmpnum_free(zend_rsrc_list_entry *rsrc TSRMLS_DC);
# define MAX_BASE 36
#endif
-/* {{{ gmp_emalloc
- */
-static void *gmp_emalloc(size_t size)
-{
- return emalloc(size);
-}
-/* }}} */
-
-/* {{{ gmp_erealloc
- */
-static void *gmp_erealloc(void *ptr, size_t old_size, size_t new_size)
-{
- return erealloc(ptr, new_size);
-}
-/* }}} */
-
-/* {{{ gmp_efree
- */
-static void gmp_efree(void *ptr, size_t size)
-{
- efree(ptr);
-}
-/* }}} */
-
/* {{{ ZEND_GINIT_FUNCTION
*/
static ZEND_GINIT_FUNCTION(gmp)
@@ -369,8 +345,6 @@ ZEND_MODULE_STARTUP_D(gmp)
#endif
REGISTER_STRING_CONSTANT("GMP_VERSION", (char *)gmp_version, CONST_CS |
CONST_PERSISTENT);
- mp_set_memory_functions(gmp_emalloc, gmp_erealloc, gmp_efree);
-
return SUCCESS;
}
/* }}} */