diff options
author | Remi Collet <fedora@famillecollet.com> | 2014-11-02 09:27:26 +0100 |
---|---|---|
committer | Remi Collet <fedora@famillecollet.com> | 2014-11-02 09:27:26 +0100 |
commit | 3f0b0b8da748a3981083d7b8133d67a3f2a13446 (patch) | |
tree | 16e2aa5cd1a8f453e601c74fec745dfe6159a6a3 | |
parent | b174686154d592f823a74d4106d0f4ce053779ab (diff) |
php54-php: gmp: fix memory management conflict with other libraries using libgmp, backport fix for https://bugs.php.net/63595
-rw-r--r-- | php-5.4.34-bug63595.patch | 72 | ||||
-rw-r--r-- | php.spec | 5 |
2 files changed, 77 insertions, 0 deletions
diff --git a/php-5.4.34-bug63595.patch b/php-5.4.34-bug63595.patch new file mode 100644 index 0000000..7df8438 --- /dev/null +++ b/php-5.4.34-bug63595.patch @@ -0,0 +1,72 @@ +From 3c925b18fa96043e5d7e86f9ce544b143c3c2079 Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@php.net> +Date: Mon, 27 Oct 2014 07:45:34 +0100 +Subject: [PATCH] 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 +--- + ext/gmp/gmp.c | 26 -------------------------- + 1 file changed, 26 deletions(-) + +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; + } + /* }}} */ +-- +2.1.0 + @@ -155,6 +155,8 @@ Patch91: php-5.3.7-oci8conf.patch # Upstream fixes (100+) # Backported from 5.5.18 for https://bugs.php.net/65641 Patch100: php-5.4.33-bug65641.patch +# Backported from 5.5.19 for https://bugs.php.net/63595 +Patch101: php-5.4.34-bug63595.patch # Security fixes (200+) @@ -769,6 +771,7 @@ support for using the enchant library to PHP. # upstream patches %patch100 -p1 -b .bug65641 +%patch101 -p1 -b .bug63595 # security patches @@ -1543,6 +1546,8 @@ fi * Sun Nov 2 2014 Remi Collet <remi@fedoraproject.org> 5.4.34-2 - new version of systzdata patch, fix case sensitivity - add php54-cgi command in base system +- gmp: fix memory management conflict with other libraries + using libgmp, backport fix for https://bugs.php.net/63595 * Thu Oct 16 2014 Remi Collet <remi@fedoraproject.org> 5.4.34-1 - Update to 5.4.34 |