moriyoshi Wed Nov 13 02:40:11 2002 EDT
Modified files:
/php4/ext/mbstring mbstring.c
Log:
Fixed a buffer over-run bug in case a function to be overloaded doesn't exist.
# This patch was made by Ilia.
Index: php4/ext/mbstring/mbstring.c
diff -u php4/ext/mbstring/mbstring.c:1.139 php4/ext/mbstring/mbstring.c:1.140
--- php4/ext/mbstring/mbstring.c:1.139 Tue Nov 12 17:05:18 2002
+++ php4/ext/mbstring/mbstring.c Wed Nov 13 02:40:11 2002
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mbstring.c,v 1.139 2002/11/12 22:05:18 moriyoshi Exp $ */
+/* $Id: mbstring.c,v 1.140 2002/11/13 07:40:11 moriyoshi Exp $ */
/*
* PHP4 Multibyte String module "mbstring" (currently only for Japanese)
@@ -915,24 +915,16 @@
zend_hash_find(EG(function_table), p->ovld_func,
strlen(p->ovld_func)+1 , (void **)&func);
- if (zend_hash_find(EG(function_table), p->orig_func,
- strlen(p->orig_func)+1, (void
**)&orig) != SUCCESS) {
-
- php_error_docref("ref.mbstring" TSRMLS_CC,
E_ERROR,
- "mbstring couldn't find function %s.",
p->orig_func);
-
+ if (zend_hash_find(EG(function_table), p->orig_func,
+strlen(p->orig_func)+1, (void **)&orig) != SUCCESS) {
+ php_error_docref("ref.mbstring" TSRMLS_CC,
+E_WARNING, "mbstring couldn't find function %s.", p->orig_func);
+ return FAILURE;
} else {
+ zend_hash_add(EG(function_table),
+p->save_func, strlen(p->save_func)+1, orig, sizeof(zend_function), NULL);
- zend_hash_add(EG(function_table), p->save_func,
- strlen(p->save_func)+1, orig,
- sizeof(zend_function), NULL);
-
- if (zend_hash_update(EG(function_table),
p->orig_func,
- strlen(p->orig_func)+1, func,
sizeof(zend_function),
+ if (zend_hash_update(EG(function_table),
+p->orig_func, strlen(p->orig_func)+1, func, sizeof(zend_function),
NULL) == FAILURE) {
-
- php_error_docref("ref.mbstring"
TSRMLS_CC, E_ERROR,
- "mbstring couldn't replace
function %s.", p->orig_func);
+ php_error_docref("ref.mbstring"
+TSRMLS_CC, E_WARNING, "mbstring couldn't replace function %s.", p->orig_func);
+ return FAILURE;
}
}
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php