From:             [EMAIL PROTECTED]
Operating system: GNU/Linux
PHP version:      4.0.5
PHP Bug Type:     Unknown/Other Function
Bug description:  odd output in create_function()

An odd character seems to appear in the return value of
create_function() (which should be of 'lambda_x' format
where x is an integer).  This character is causing eval() to
crap out when trying to evaluate the created function.  Just
before the 'l' is a character that looks like Pi in the
browser.  The only way I knew to find out what it was was to
urlencode() the return value and the strange character was
encoded to '%00'.  I'm no C coder, but the changes below
seemed to fix things.  

*** /tmp/zend_builtin_functions.c       Mon May  7 22:09:45 2001
--- /usr/local/src/php-4.0.5/Zend/zend_builtin_functions.c      Mon May  7 22:03:31 
2001
***************
*** 965,974 ****
                }
                function_add_ref(func);
  
!               function_name = (char *)
emalloc(sizeof("0lambda_")+MAX_LENGTH_OF_LONG);
  
                do {
!       
        sprintf(function_name, "%clambda_%d", 0, ++EG(lambda_count));
        
        function_name_length = strlen(function_name+1)+1;
                } while (zend_hash_add(EG(function_table), function_name,
function_name_length+1, func, sizeof(zend_function),
NULL)==FAILURE);
                zend_hash_del(EG(function_table), LAMBDA_TEMP_FUNCNAME,
sizeof(LAMBDA_TEMP_FUNCNAME));
--- 965,974 ----
                }
                function_add_ref(func);
  
!               function_name = (char *)
emalloc(sizeof("lambda_")+MAX_LENGTH_OF_LONG);
  
                do {
!       
        sprintf(function_name, "lambda_%d", ++EG(lambda_count));
        
        function_name_length = strlen(function_name+1)+1;
                } while (zend_hash_add(EG(function_table), function_name,
function_name_length+1, func, sizeof(zend_function),
NULL)==FAILURE);
                zend_hash_del(EG(function_table), LAMBDA_TEMP_FUNCNAME,
sizeof(LAMBDA_TEMP_FUNCNAME));



-- 
Edit Bug report at: http://bugs.php.net/?id=10721&edit=1



-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to