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

Reply via email to