Простой DoS для PHP

Копался сегодня во внутренностях , и обнаружил такую вещь: функция zend_hash_sort() (она вызывается из функций типа usort() и прочих) сортирует не сам массив (в терминах ), а массив (в терминах языка C) указателей на элементы массива (в терминах ), а потом по отсортированному C-массиву пересоздаёт PHP-массив. Далее »

Автор: , опубликовано в: PHP, Безопасность, комментариев: 3
19
Окт
2009

bbPress Attachments 0.2.7: решение проблемы с установкой

Устанавливал заказчику  и bbPress Attachments 0.2.7. Плагин установился без проблем, но вот незадача: вложения загружаются (создаются файлы на диске), но на форуме не отображаются.

Оказалось, что всё дело портит в функции активации плагина. Далее »

Автор: , опубликовано в: bbPress, комментариев: 2
21
Сен
2009

Возвращаем Skype к жизни в Ubuntu Karmic Koala на 64-битной платформе

Почти год назад я писал об аналогичной проблеме со в Intrepid Ibex. Воистину, история имеет тенденцию к повторению — сменился релиз, проблема осталась. Тем не менее, прошлогоднее исправление не помогает, поэтому приходится изобретать что-то новое.

К слову, проблема всё та же:


ALSA lib ../../src/conf.c:2700:(snd_config_hooks_call) Cannot open shared library /usr/lib/alsa-lib/libasound_module_conf_pulse.so
ALSA lib ../../../src/control/control.c:909:(snd_ctl_open_noupdate) Invalid CTL hw:0

Но решается иначе. Далее »

Автор: , опубликовано в: Linux, комментариев: 3
10
Авг
2009

dk-filter: util.c:47: dk_sterilize: Assertion `str != ((void *)0)’ failed: Часть 2

Вчера я писал об ошибке в dk-filter, приводящей к гибели процесса, если сконфигурирован использовать разные ключи для подписи сообщений от разных отправителей, и ключ для отправителя не найден.

Я предложил два решения: тривиальное (изменить файл конфигурации так, чтобы все отправители начинались со звёздочки) и правильное (пропатчить код демона, ибо фатальное завершение по такой пустяковой ошибке — это неправильно).

Именно о втором решении далее пойдёт речь. Далее »

Автор: , опубликовано в: C/C++, Linux, Администрирование, комментариев: нет
26
Июл
2009

dk-filter: util.c:47: dk_sterilize: Assertion `str != ((void *)0)’ failed.

На днях столкнулся с неприятной ошибкой: при отправлении письма падал с ошибкой

dk-filter: util.c:47: dk_sterilize: Assertion `str != ((void *)0)’ failed..

В баг-трекере решения проблемы не нашлось (хотя проблеме больше года), пришлось все решать самому (люблю open source!).

Проблема проявлялась, когда dk-filter был запущен в конфигурации, использующей несколько ключей для подписывания сообщений (грубо говоря, каждому домену полагался свой ключ). Далее »

Автор: , опубликовано в: Linux, Администрирование, комментариев: 1
25
Июл
2009

FireFox 3.5 и ICC-профили изображений

Если в  3.5 цвета на рисунке отображаются неправильно — например, так:

Неверное отображение рисунка

а не так:

Корректное отображение рисунка

то всё дело в том, что либо в операционной системе не настроены -профили, либо у FireFox проблемы с отображением рисунков с -профилями. Далее »

Автор: , опубликовано в: Всё подряд, комментариев: 3
17
Июл
2009

svn: could not connect to server

Сегодня столкнулся с интересной ошибкой при попытке экспорта проекта из репозитория :

[-]
View Code Text
$ svn export -q -r8913 https://my.repository.com/svn/trunk /var/www/some/path
svn: OPTIONS of 'https://my.repository.com/svn/trunk': could not connect to server (https://my.repository.com)

Произошло это после обновления системы (на машине стоит ).

Первое подозрение — что-то не то с DNS, ибо извне к репозиторию есть доступ. Проверил:

[-]
View Code Text
$ wget https://my.repository.com
--2009-07-07 13:10:21--  https://my.repository.com
Resolving my.repository.com... 12.34.56.78
Connecting to my.repository.com|12.34.56.78|:443... connected.
HTTP request sent, awaiting response... 200 OK

Получается, что проблема где-то в subversion, а не в невозможности соединения с сервером или криво настроенном DNS.
Далее »

Автор: , опубликовано в: Linux, комментариев: 15
7
Июл
2009

Simple Tags 1.6.6 и автоматические ссылки меток на русском языке

Полгода назад я рассказывал о том, что не умеет работать с многобайтовыми символами (коими, к слову, являются русские буквы в кодировке UTF-8). За это время вышло восемь или девять новых версий плагина, но проблема с поддержкой UTF-8 всё же осталась.

Так сложилось, что именно сегодня я решил обновить . Патчить код было лень, я надеялся, что у Lecactus’а лежит пропатченная свежая версия. Увы, только 1.6.3. Далее »

Автор: , опубликовано в: Патчи, Плагины WordPress, комментариев: 23
2
Июн
2009

Плагин Redirect от Nick Berlette

Сегодня по долгу работы пришлось столкнуться с плагином Redirect от Nick Berlette. выполняет перенаправление на URL, заданный в Произвольных полях записи или страницы. Сам по себе простой — кода всего 10 строк. Я бы на него даже не обратил внимание, если бы CLI-скрипт не вернул фатальную ошибку. Далее »

Автор: , опубликовано в: Плагины WordPress, комментариев: 4
15
Май
2009

О пользе избыточной инициализации, или, В исходный код смотреть вредно

То, что данные нужно инициализировать перед использованием, знают все. Но иногда правильная инициализация — хитрая штука. Я с этим столкнулся, когда писал расширение для , работающее с Voxel Hosting API.

Одна из проблем PHP — плохая документация (отсутствие таковой) по внутреннему API. А из кода не всегда всё однозначно ясно, чо временами приводит к очень милым ошибкам вида «фиг ты меня найдешь» (смягчено из соображений цензуры).

Об одной из таких особенностей я хочу рассказать. Далее »

Автор: , опубликовано в: C/C++, комментариев: нет
7
Май
2009