From b178992cd16a13b68844bcb60fcee9cebabe737b Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Sat, 12 Apr 2014 00:50:36 +0400 Subject: Temporary fix for Zend/tests/bug46238.phpt --- Zend/zend_object_handlers.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c index 5dba067023..98957ad546 100644 --- a/Zend/zend_object_handlers.c +++ b/Zend/zend_object_handlers.c @@ -1024,7 +1024,13 @@ static inline union _zend_function *zend_get_user_call_function(zend_class_entry call_user_call->num_args = 0; call_user_call->scope = ce; call_user_call->fn_flags = ZEND_ACC_CALL_VIA_HANDLER; - call_user_call->function_name = STR_COPY(method_name); + //??? keep compatibility for "\0" characters + //??? see: Zend/tests/bug46238.phpt + if (UNEXPECTED(strlen(method_name->val) != method_name->len)) { + call_user_call->function_name = STR_INIT(method_name->val, strlen(method_name->val), 0); + } else { + call_user_call->function_name = STR_COPY(method_name); + } return (union _zend_function *)call_user_call; } @@ -1157,7 +1163,13 @@ static inline union _zend_function *zend_get_user_callstatic_function(zend_class callstatic_user_call->num_args = 0; callstatic_user_call->scope = ce; callstatic_user_call->fn_flags = ZEND_ACC_STATIC | ZEND_ACC_PUBLIC | ZEND_ACC_CALL_VIA_HANDLER; - callstatic_user_call->function_name = STR_COPY(method_name); + //??? keep compatibility for "\0" characters + //??? see: Zend/tests/bug46238.phpt + if (UNEXPECTED(strlen(method_name->val) != method_name->len)) { + callstatic_user_call->function_name = STR_INIT(method_name->val, strlen(method_name->val), 0); + } else { + callstatic_user_call->function_name = STR_COPY(method_name); + } return (zend_function *)callstatic_user_call; } -- cgit v1.2.1