ID: 26571
User updated by: Mentaloid at hotmail dot com
Reported By: Mentaloid at hotmail dot com
-Status: Feedback
+Status: Open
Bug Type: Scripting Engine problem
Operating System: Linux 2.4.22 SMP
PHP Version: 4.3.3
New Comment:
I'm unable to reproduce using your code.. (the -r is unavailable on my
command line, so I droped it into a .php file and ran it that way).
However, I'm also unable to reproduce it via a static 'ffffffff'
string, however it will not work with a string from a sql result.
strlen($fetch['test1']) shows 8 bytes, so I don't believe there is a
leading or trailing null. I will do some more investigating here, and
update with any more results I can dig up. The function I posted is as
is, but I'll see if I can setup a source that will reproduce this for
you. It could be a lot more source to sift through ;)
Previous Comments:
------------------------------------------------------------------------
[2003-12-09 22:15:49] [EMAIL PROTECTED]
I cant reproduce this on php5 or php4.3.2-RC
Does this exhibit the same problem?
php -r 'function test() { print_r(func_get_args()); }
test("ffffffff","ffffffff");'
------------------------------------------------------------------------
[2003-12-09 21:23:50] Mentaloid at hotmail dot com
Description:
------------
When passing a string containing 8 bytes that represents hexadecimal
data such as 'ffffffff' to a user function that utilizes func_get_arg()
or func_get_arg(), values become unavailable (zero length string) while
func_num_args() will show that the value existed.
Configure Line "'./configure' '--with-mysql=/usr/local/mysql'
'--with-ftp' '--enable-sockets'
'--with-apxs2=/usr/local/apache2/bin/apxs'"
Apache 2.0, standard config + frontpage extensions. Frontpage
extensions not active on this virtualhost.
Standard INI, with the exception of ASP TAGS.
PHPInfo page can be viewed @
http://tko.mentadd.com/ServerControl/control/xxPhpInfo.php
Reproduce code:
---------------
function binlogdata() {
global $DB, $scbinlogtable;
$args = func_get_args();
$results = '';
foreach ($args as $key => $value) {
if ($key == 0) {
$results = $results.'<API>'.$value.'</API>';
} else {
$results =
$results.'<PARM'.$key.'>'.$value.'</PARM'.$key.'>';
}
}
return $results;
}
$fetch['test1'] = 'thisisok';
$fetch['test2'] = 'ffffffff';
echo binlogdata('PlayerLimit',$fetch['test1'],$fetch['test2']);
Expected result:
----------------
// The expected result is
"<API>PlayerLimit</API><PARM1>thisisok</PARM1><PARM2>ffffffff</PARM2>";
Actual result:
--------------
// The actual result is
"<API>PlayerLimit</API><PARM1>thisisok</PARM1><PARM2></PARM2>";
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=26571&edit=1