Бага в Blitz или вообще в любых экстеншенах. Возможна дырка с переполнением буфера.
После исполнения return переменная $Test->str[0] будет содержать мусор, а не строку "hello". Либо Блитц, либо сам пхп чистит стек после завершения функции (и это разумеется правильно), но почему-то присваивание $str указывает тоже на стек, подлежащий чистке.
А, самое главное. $Test->go() вызывается коллбеком из Блитца. Сам по себе пример в чистом пхп не глючит.
Интересно, если записать что-то либо в str (которая указывает в стек), можно ли сделать переопределение возврата чужого ретурна, т.е. просто свой асм код?
Если она указывает в стек выше, то разумеется нельзя, а вот если ниже SP:BP (или не в стек, а еще куда-нибудь)...
-~{}~ 04.08.09 13:41:
php 5.3.0RC3-dev
PHP:
class Test {
public $str;
function go() {
$x="hello";
$this->str[]=$x;
return $x;
}
}
А, самое главное. $Test->go() вызывается коллбеком из Блитца. Сам по себе пример в чистом пхп не глючит.
Интересно, если записать что-то либо в str (которая указывает в стек), можно ли сделать переопределение возврата чужого ретурна, т.е. просто свой асм код?

-~{}~ 04.08.09 13:41:
php 5.3.0RC3-dev