Arpad Ray wrote:
So, is this behaviour deliberate, and if so, what's the rationale?
The problem seems to be in (5.2.x CVS) php_variables.c, lines 161-166:
if (PG(magic_quotes_gpc) && (index != var)) {
/* no need to addslashes() the index if it's the
main variable name */
escaped_index = php_addslashes(index, index_len,
&index_len, 0 TSRMLS_CC);
} else {
escaped_index = index;
}
If "&& (index != var)" is removed, all keys are escaped as expected. The
equivalent line for keys of scalar variables (198) lacks this check
since 5.0.0, and since then it has escaped them correctly. It's still
there in the 4.4 branch.
Is there any reason not to remove this check, at least in the 5.2 branch?
Arpad
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php