Простой DoS для PHP
Копался сегодня во внутренностях PHP, и обнаружил такую вещь: функция zend_hash_sort() (она вызывается из функций типа usort() и прочих) сортирует не сам массив (в терминах Zend Engine), а массив (в терминах языка C) указателей на элементы массива (в терминах Zend Engine), а потом по отсортированному C-массиву пересоздаёт PHP-массив. Далее »
Окт
2009
Возвращаем Skype к жизни в Ubuntu Karmic Koala на 64-битной платформе
Почти год назад я писал об аналогичной проблеме со Skype в Ubuntu 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
Но решается иначе. Далее »
Автор: Vladimir, опубликовано в: Linux, комментариев: 3Авг
2009
dk-filter: util.c:47: dk_sterilize: Assertion `str != ((void *)0)’ failed: Часть 2
Вчера я писал об ошибке в dk-filter, приводящей к гибели процесса, если dk-filter сконфигурирован использовать разные ключи для подписи сообщений от разных отправителей, и ключ для отправителя не найден.
Я предложил два решения: тривиальное (изменить файл конфигурации так, чтобы все отправители начинались со звёздочки) и правильное (пропатчить код демона, ибо фатальное завершение по такой пустяковой ошибке — это неправильно).
Именно о втором решении далее пойдёт речь. Далее »
Автор: Vladimir, опубликовано в: C/C++, Linux, Администрирование, комментариев: нетИюл
2009
dk-filter: util.c:47: dk_sterilize: Assertion `str != ((void *)0)’ failed.
На днях столкнулся с неприятной ошибкой: при отправлении письма dk-filter падал с ошибкой
dk-filter: util.c:47: dk_sterilize: Assertion `str != ((void *)0)’ failed..
В баг-трекере Debian решения проблемы не нашлось (хотя проблеме больше года), пришлось все решать самому (люблю open source!).
Проблема проявлялась, когда dk-filter был запущен в конфигурации, использующей несколько ключей для подписывания сообщений (грубо говоря, каждому домену полагался свой ключ). Далее »
Автор: Vladimir, опубликовано в: Linux, Администрирование, комментариев: 1Июл
2009
FireFox 3.5 и ICC-профили изображений
Если в FireFox 3.5 цвета на рисунке отображаются неправильно — например, так:
а не так:
то всё дело в том, что либо в операционной системе не настроены ICC-профили, либо у FireFox проблемы с отображением рисунков с ICC-профилями. Далее »
Автор: Vladimir, опубликовано в: Всё подряд, комментариев: 3Июл
2009
svn: could not connect to server
Сегодня столкнулся с интересной ошибкой при попытке экспорта проекта из репозитория Subversion:
svn: OPTIONS of 'https://my.repository.com/svn/trunk': could not connect to server (https://my.repository.com)
Произошло это после обновления системы (на машине стоит Debian).
Первое подозрение — что-то не то с DNS, ибо извне к репозиторию есть доступ. Проверил:
--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.
Далее »
Июл
2009
Simple Tags 1.6.6 и автоматические ссылки меток на русском языке
Полгода назад я рассказывал о том, что Simple Tags не умеет работать с многобайтовыми символами (коими, к слову, являются русские буквы в кодировке UTF-8). За это время вышло восемь или девять новых версий плагина, но проблема с поддержкой UTF-8 всё же осталась.
Так сложилось, что именно сегодня я решил обновить плагин. Патчить код было лень, я надеялся, что у Lecactus’а лежит пропатченная свежая версия. Увы, только 1.6.3. Далее »
Автор: Vladimir, опубликовано в: Патчи, Плагины WordPress, комментариев: 23Июн
2009
Плагин Redirect от Nick Berlette
Сегодня по долгу работы пришлось столкнуться с плагином Redirect от Nick Berlette. Плагин выполняет перенаправление на URL, заданный в Произвольных полях записи или страницы. Сам по себе плагин простой — кода всего 10 строк. Я бы на него даже не обратил внимание, если бы CLI-скрипт не вернул фатальную ошибку. Далее »
Автор: Vladimir, опубликовано в: Плагины WordPress, комментариев: 4Май
2009
О пользе избыточной инициализации, или, В исходный код смотреть вредно
То, что данные нужно инициализировать перед использованием, знают все. Но иногда правильная инициализация — хитрая штука. Я с этим столкнулся, когда писал расширение для PHP, работающее с Voxel Hosting API.
Одна из проблем PHP — плохая документация (отсутствие таковой) по внутреннему API. А из кода Zend Engine не всегда всё однозначно ясно, чо временами приводит к очень милым ошибкам вида «фиг ты меня найдешь» (смягчено из соображений цензуры).
Об одной из таких особенностей я хочу рассказать. Далее »
Автор: Vladimir, опубликовано в: C/C++, комментариев: нетМай
2009



Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.

