From 04f59073e659f92d55ec294a24908520a12e687a Mon Sep 17 00:00:00 2001 From: Moriyoshi Koizumi Date: Wed, 13 Nov 2002 07:40:11 +0000 Subject: [PATCH] Fixed a buffer over-run bug in case a function to be overloaded doesn't exist. # This patch was made by Ilia. --- ext/mbstring/mbstring.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index b6f14373bc..28bd4fe17f 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -915,24 +915,16 @@ PHP_RINIT_FUNCTION(mbstring) 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; } } } -- 2.40.0