|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2005-01-29 21:01 UTC] tony2001@php.net
[2005-01-29 21:09 UTC] t3 at rohms dot com
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 22 21:00:01 2025 UTC |
Description: ------------ I have an application that up until 4.3.10, worked perfectly with no modifications; upon installing 4.3.10, one part of the application no longer functions properly. I have narrowed down the problem to an area involving the use of the statement: extract($GLOBALS,EXTR_REFS); in association with running eval() on a code block. If the code within that EVAL'd code block calls a subroutine, the passed parameter data is horribly messed up -- some kind of stack issue. I have verified this is a new anomoly that is the result of the latest version upgrade. However, I believe this may be related to the zend engine and not php. When my system broke, I reverted php back to 4.3.6 and it still wasn't fixed; only when I reverted back to 4.3.6 and removed the references to the newest version of the zend did the problem disappear. Reproduce code: --------------- I will be working on some sample code, but right now I've had to revert php back to an earlier version to make about a half-dozen sites functional. The problem appears in some code I've written which involves storing blocks of php code in MySQL and EVAL'ing them. I created a subroutine that pulls a record from the database and EVAL's it. Because it's a subroutine I use the extract($GLOBALS,EXTR_REFS); before I eval the code so that the code has access to globals. Everything works fine UNTIL something in that code calls a function... the data passed to the function is completely screwed up. This only appears to happen in 4.3.10 with the new version of zend.