Bug #61766 [Com]: call_user_func sends scrambled class name to autoload

From: Date: Tue, 18 Sep 2012 23:29:38 +0000
Subject: Bug #61766 [Com]: call_user_func sends scrambled class name to autoload
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-173547@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=61766&edit=1

 ID:                 61766
 Comment by:         php at guyjohnson dot org
 Reported by:        admin dot windows at gmail dot com
 Summary:            call_user_func sends scrambled class name to
                     autoload
 Status:             Not a bug
 Type:               Bug
 Package:            *General Issues
 Operating System:   ALL
 PHP Version:        5.3.10
 Block user comment: N
 Private report:     N

 New Comment:

I am encountering a very similar problem. I use call_user_func_array to execute 
a static class method and I get a corrupted call. Unlike the original report, 
it's not the class name that's corrupted, but rather the method name in my case. 
Here's the code:

return array_keys(call_user_func_array(array(get_called_class(), 'fielddefs'), 
func_get_args()));

By the time the method is called, the method name is completely corrupted to 
become this method name: &j-2!?{7k

Here's a string-ified backtrace: 
exception 'ErrorException' with message 'WARNING: Attempt to call
e_member->&j-
2!?{7k failed because "" is not callable (iaw:element:member.&j-2!?{7k).' in 
/home7/inneract/sites/iawtest/lib/capcelinstance.php:650
Stack trace:
#0 [internal function]: CapcelInstance->__call('&j-2!?{7k', Array)
#1 [internal function]: e_member->&j-2!?{7k(Object(CapcelPortal), 10, NULL, 
Array)
#2 /home7/inneract/sites/iawtest/lib/capcelinstance.php(282): 
call_user_func_array(Array, Array)
#3 [internal function]: CapcelInstance->field_list(Object(CapcelPortal), 10, 
NULL, Array)
#4 /home7/inneract/sites/iawtest/lib/capcelinstance.php(324): 
call_user_func_array(Array, Array)
#5 /home7/inneract/sites/iawtest/app/iaw/a_establishmember.php(115): 
CapcelInstance->render_fields(Object(CapcelPortal), 10, NULL, Array)
#6 /home7/inneract/sites/iawtest/app/web/scheduler.php(31): a_EstablishMember-
>render(Object(CapcelPortal), Array)
#7 {main}

Frame 0 and the exception itself are only symptoms. The problem is first visible 
in frame 1 and there is no trace of a problem when call_user_func_array() is 
called in line 282 of the code as shown in frame 2.

I have examined a full backtrace in detail and confirmed that there is no 
corruption of any kind visible going into the call to call_user_func_array(). 
The method "fielddefs" does exist in the class CapcelInstance, of which e_member 
is a subclass.

I strongly believe there's a real bug in call_user_func_array... some kind of 
data corruption occurs as it executes and before it calls the target callable.


Previous Comments:
------------------------------------------------------------------------
[2012-05-25 09:35:52] hefi at lajt dot hu

I met the same problem. I found that if I commented out ZendGuardLoader.so then it would worked
fine!

------------------------------------------------------------------------
[2012-04-20 01:54:53] aharvey@php.net

We really can't support any third party extensions. It could be any or none of 
them.

Since you're unable to disable those extensions, I'm going to close this bug for 
now. If you are able to get your host to disable all third party extensions, 
including the Suhosin patch, and the behaviour recurs, please reopen the bug.

------------------------------------------------------------------------
[2012-04-19 10:37:07] admin dot windows at gmail dot com

Unfortunately I don't have rights to enable or disable modules on my cloud, I 
would pass this issue to my hosting support.
Also I noticed that server is protected with the Suhosin Patch 0.9.10 can it cause 
this behavior?

------------------------------------------------------------------------
[2012-04-19 09:21:26] johannes@php.net

Please disable ionCube Loader, Zend Guard Loader and XCache as all of these 3rd party modules change
the engine's behaviour.

------------------------------------------------------------------------
[2012-04-19 09:06:56] admin dot windows at gmail dot com

Hi,
I have following extensions enabled on my hosting (Rackspace):

Core, date, ereg, libxml, openssl, pcre, sqlite3, zlib, bz2, calendar, ctype, 
hash, filter, ftp, gettext, gmp, SPL, iconv, Reflection, session, standard, 
shmop, SimpleXML, sockets, exif, tokenizer, xml, apache2handler, bcmath, curl, 
dba, dom, fileinfo, gd, imagick, imap, intl, json, ldap, pdf, mbstring, mcrypt, 
memcache, mongo, mssql, mysql, mysqli, odbc, PDO, pdo_dblib, pdo_mysql, 
PDO_ODBC, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, recode, redis, 
snmp, soap, sysvmsg, sysvsem, sysvshm, tidy, uploadprogress, wddx, xmlreader, 
xmlrpc, xmlwriter, xsl, yaz, zip, ionCube Loader, Zend Guard Loader, XCache

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=61766


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=61766&edit=1


Thread (9 messages)

« previous php.bugs (#173547) next »