summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2014-11-02 09:27:26 +0100
committerRemi Collet <fedora@famillecollet.com>2014-11-02 09:27:26 +0100
commit3f0b0b8da748a3981083d7b8133d67a3f2a13446 (patch)
tree16e2aa5cd1a8f453e601c74fec745dfe6159a6a3
parentb174686154d592f823a74d4106d0f4ce053779ab (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.patch72
-rw-r--r--php.spec5
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
+
diff --git a/php.spec b/php.spec
index 50a7c64..bc5dc3b 100644
--- a/php.spec
+++ b/php.spec
@@ -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