summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rw-r--r--ext/bcmath/bcmath.c30
-rw-r--r--ext/bcmath/php_bcmath.h2
3 files changed, 26 insertions, 7 deletions
diff --git a/NEWS b/NEWS
index 97c484c342..2a57e828b3 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,7 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2004, PHP 5.0.1
+- Fixed bug #28829 (Thread-unsafety in bcmath elementary values). (Sara)
13 Jul 2004, PHP 5.0.0
- Updated PCRE to provide better error handling in certain cases. (Andrei)
diff --git a/ext/bcmath/bcmath.c b/ext/bcmath/bcmath.c
index b4f5de75e5..94d3b90d59 100644
--- a/ext/bcmath/bcmath.c
+++ b/ext/bcmath/bcmath.c
@@ -53,8 +53,8 @@ zend_module_entry bcmath_module_entry = {
bcmath_functions,
PHP_MINIT(bcmath),
PHP_MSHUTDOWN(bcmath),
- NULL,
- NULL,
+ PHP_RINIT(bcmath),
+ PHP_RSHUTDOWN(bcmath),
PHP_MINFO(bcmath),
NO_VERSION_YET,
STANDARD_MODULE_PROPERTIES
@@ -86,8 +86,6 @@ PHP_MINIT_FUNCTION(bcmath)
REGISTER_INI_ENTRIES();
- bc_init_numbers(TSRMLS_C);
-
return SUCCESS;
}
/* }}} */
@@ -96,15 +94,33 @@ PHP_MINIT_FUNCTION(bcmath)
*/
PHP_MSHUTDOWN_FUNCTION(bcmath)
{
+ UNREGISTER_INI_ENTRIES();
+
+ return SUCCESS;
+}
+/* }}} */
+
+/* {{{ PHP_RINIT_FUNCTION
+ */
+PHP_RINIT_FUNCTION(bcmath)
+{
+ bc_init_numbers(TSRMLS_C);
+
+ return SUCCESS;
+}
+/* }}} */
+
+/* {{{ PHP_RSHUTDOWN_FUNCTION
+ */
+PHP_RSHUTDOWN_FUNCTION(bcmath)
+{
_bc_free_num_ex(&BCG(_zero_), 1);
_bc_free_num_ex(&BCG(_one_), 1);
_bc_free_num_ex(&BCG(_two_), 1);
- UNREGISTER_INI_ENTRIES();
-
return SUCCESS;
}
-/* }}} */
+/* }}} */
/* {{{ PHP_MINFO_FUNCTION
*/
diff --git a/ext/bcmath/php_bcmath.h b/ext/bcmath/php_bcmath.h
index 32d005e226..c99fd2534c 100644
--- a/ext/bcmath/php_bcmath.h
+++ b/ext/bcmath/php_bcmath.h
@@ -30,6 +30,8 @@ extern zend_module_entry bcmath_module_entry;
PHP_MINIT_FUNCTION(bcmath);
PHP_MSHUTDOWN_FUNCTION(bcmath);
+PHP_RINIT_FUNCTION(bcmath);
+PHP_RSHUTDOWN_FUNCTION(bcmath);
PHP_MINFO_FUNCTION(bcmath);
PHP_FUNCTION(bcadd);