Сломанная компиляция PostgreSQL и уязвимость WPA2 в WiFi

| рубрика: Заметки | автор: st
Метки: ,

Новости несвязаны между собой, но интересны с точки зрения трендов опенсурса в первом случае и неоправданного фанатизма веры в математиков во втором.

Добавление ключевого слова INFINITY в SQL приводит к тому, что PostgreSQL перестает собираться некоторыми компиляторами, прежде всего MSVC. Проблема оказалась не в Microsoft, а в том, что на каждое ключевое слово кодогенератор ecpg создает одноименное значение типа enum. В языке Си есть макрос INFINITY, при неявном включении math.h возникает ошибка. В соответствующих заголовках gcc, видимо, этой неявной зависимости нет (точнее, пока нет), компиляция проходит.

Мораль. Первое ключевое слово в проблеме -- макрос. Используйте пространства имен, константы и явную их спецификацию в коде вместо макросов -- и следующее поколение будет вспоминать о вас добрым словом. Второе ключевое слово -- открытые исходники. Сам разбирайся или плати и кайся, если только найдешь кому.

WPA2 -- самый продвинутый способ авторизации к WiFi-сетям. В нем обнаружена неприятная уязвимость: при установлении соединений злоумышленник может принудить к повторному использованию ключа и читать трафик, а также вмешиваться в него. Переходить с WPA2 некуда, так как остальные способы считаются ещё менее безопасными. Технические подробности на сайте.

Ирония судьбы в том, что WPA2 считался способом с математически доказанной корректностью.