From: Rui Hirokawa Date: Fri, 13 Jun 2008 14:47:48 +0000 (+0000) Subject: fixed bug #27421 (by david at dfoerster dot de) mbstring.func_overload set in .htacce... X-Git-Tag: BEFORE_HEAD_NS_CHANGE~1521 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=19047cfd2e3265bbc7dff282914a85eee248183f;p=php fixed bug #27421 (by david at dfoerster dot de) mbstring.func_overload set in .htaccess becomes global --- diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index d62f1df5e0..b0c493e8cb 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -1029,9 +1029,14 @@ PHP_RSHUTDOWN_FUNCTION(mbstring) /* clear overloaded function. */ if (MBSTRG(func_overload)){ p = &(mb_ovld[0]); - while (p->type > 0 && zend_hash_find(EG(function_table), p->save_func, strlen(p->save_func)+1 , (void **)&orig) == SUCCESS) { - zend_hash_update(EG(function_table), p->orig_func, strlen(p->orig_func)+1, orig, sizeof(zend_function), NULL); - zend_hash_del(EG(function_table), p->save_func, strlen(p->save_func)+1); + while (p->type > 0) { + if ((MBSTRG(func_overload) & p->type) == p->type && + zend_hash_find(EG(function_table), p->save_func, + strlen(p->save_func)+1, (void **)&orig) == SUCCESS) { + + zend_hash_update(EG(function_table), p->orig_func, strlen(p->orig_func)+1, orig, sizeof(zend_function), NULL); + zend_hash_del(EG(function_table), p->save_func, strlen(p->save_func)+1); + } p++; } }