![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
bars80080 |
|
||||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
добрый день. погрузился в чужой код. подскажите, пожалуйста, куда копнуть, чтобы определить механизм происходящей магии
заклинание выглядит так:
или этот метод в полном (никак неурезанном) виде:
результат работы дампирующей функции:
метод в классе, который работает как синглтон, но сам метод вызывается внутри через self::ReadFromCacheFile() автор не имел возможности перекатать саму unserialize на уровне C при поиске каких-то манипуляций с unserialize я не заметил как я понимаю, идёт какая-то магия с областями видимости, но из-за нехватки академического образования, даже не знаю куда смотреть. переменная $data вроде локальная, используется php 5.3, namespace уже поддерживаются, но не вижу хвостов дайте, плиз, наводку |
||||||
|
|||||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Выглядит как косяк PHP. Массив располагается в какой то временной памяти, которая используется функцией unserialize.
Нужно проверить, откуда и как берется сам массив TaisConstants::$arAirlinesCodeID. Не указатель ли это на непоймичто? в 5.3 с указателями сильно поработали по сравнению с предыдущими версиями, и явное их использование надо перепроверять. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
косяк не косяк, но автором используется сознательно. сдаётся мне, это не баг, а фича. которая, конечно, в данном исполнении демонстрирует нулевую юзабельность и суперустойчивость перед отладкой
|
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
А там случайно не объект сериализуется? Если объект - у него может быть своя отдельная магия. Законная - __wakeup, называется.
Это сообщение отредактировал(а) ksnk - 16.7.2014, 21:44 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
воооот оно что. очень похоже на то. завтра посмотрю
|
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
да, именно так и было. в классе был прописан __wakeup, который как раз этим и занимался
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |