The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Подведены итоги аудита кода библиотеки GNU libmicrohttpd"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  +/
Сообщение от opennews (??) on 29-Май-17, 10:20 
Проект GNU опубликовал (http://www.mail-archive.com/info-gnu@gnu.org/msg02288.html) выпуск библиотеки libmicrohttpd 0.9.55 (http://www.gnu.org/software/libmicrohttpd/),  представляющей простой API для встраивания функциональности HTTP-сервера в приложения. Библиотека поддерживает протокол HTTP 1.1, TLS, инкрементальную обработку POST-запросов, basic- и digest-аутентификацию, IPv6, HOUTcast и различные методы мультиплексирования слединений (select, poll, pthread, thread pool). Среди поддерживаемых платформ: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, macOS, Win32, Symbian и z/OS.


Выпуск примечателен исправлением недоработок, выявленных в результате  аудита (https://wiki.mozilla.org/MOSS/Secure_Open_Source/Completed#G...) безопасности кодовой базы, проведённого компанией Least Authority в рамках инициативы Mozilla по аудиту важных открытых проектов. В ходе аудита были выявлены четыре проблемы (https://wiki.mozilla.org/images/5/5f/Libmicrohttpd.pdf), одна из которых отнесена к умеренно опасным уязвимостям, две к неопасным и одна помечена как замечание. Из проблем отмечается использование функции форматирования строки sprintf без явного указания размера буфера (например sprintf(buf, "%s", str)), а также функции strcpy, вместо которых следовало применять snprintf и strncpy.
Также выявлены проблемы с обращением к файловому дескриптору до его инициализации при сборке в режиме "-Wall" и обработкой заголовков с пробелами, которые должны отбрасываться в соответствии с требованиями RFC 7230.

Из не связанных с безопасностью изменений отмечается устранение проблем со сборкой на Linux-системах без поддержки  epoll,  обеспечение поддержки опции MHD_OPTION_STRICT_FOR_CLIENT и информационной переменной MHD_CONNECTION_INFO_REQUEST_HEADER_SIZE, проведение чистки от устаревшего кода и оптимизация определения закрытия соединения keep-alive.

URL: http://www.mail-archive.com/info-gnu@gnu.org/msg02288.html
Новость: http://www.opennet.ru/opennews/art.shtml?num=46612

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


3. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  –4 +/
Сообщение от Аноним (??) on 29-Май-17, 10:31 
Не очень понятно, зачем это Мозилле, они используют эту библиотеку где-то? Тут же HTTP 1.1 только?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  +3 +/
Сообщение от Аноним (??) on 29-Май-17, 11:17 
Мозилле бы "заморозить" Firefox на время, чтобы исправлять только ошибки безопасности. А сейчас у них килотонны нового кода каждый релиз
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

15. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  –2 +/
Сообщение от Аноним (??) on 29-Май-17, 17:18 
> килотонны нового кода

Я прочел "килотонны нового кода" как "килотонны гоWнокода" ибо так читается быстрее, лаконичнее, логичнее и проще (язык не запинается). Поэтому я всем советую так читать. Анон плохого не посоветует!!1!!

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

24. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  +1 +/
Сообщение от AlexYeCu_not_logged on 29-Май-17, 21:55 
>Мозилле бы "заморозить" Firefox на время

Поздно.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

26. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  +/
Сообщение от Аноним (??) on 29-Май-17, 22:45 
Разве двиг хтмл и жс не заморожен?
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

6. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  –2 +/
Сообщение от Аноним (??) on 29-Май-17, 11:46 
А, это та читалка логов systemd по http, которой никто никогда не пользовался
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  +/
Сообщение от Аноним (??) on 29-Май-17, 11:48 
Объясните простому студенту: разве не весь нормальный софт должен собираться с -Wall без предупреждений?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  +1 +/
Сообщение от A.Stahl (ok) on 29-Май-17, 11:51 
Софт может (а некоторый и не может), но не должен. Отношение "должен" к софту вообще не применимо.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

11. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  +5 +/
Сообщение от Аноним (??) on 29-Май-17, 12:55 
Соберёшь одним компилятором без предупреждений, а следующая версия уже десяток вывалит. Это идеал, к которому следует стремиться, но для программ сложнее хелло ворлд он, как и все идеалы, недостижим.
Другое дело, что на strcpy() и sprintf() все компиляторы ругаются уже очень давно, равно как большинство статических анализаторов, а также valgrind memcheck. Да и сколько-нибудь толковые разработчики, когда видят, ругаются последними словами.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

13. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  –6 +/
Сообщение от nobody (??) on 29-Май-17, 15:06 
Нет. Варнинги, потому и варнинги, что может быть ошибкой, а может и нет. Также немало предупреждений - вкусовщина.

-Wall - это время от времени посмотреть и обдумать предупреждения. Постоянно с этим компилировать - сумасшествие

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

22. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  +1 +/
Сообщение от key email(??) on 29-Май-17, 21:09 
> Нет. Варнинги, потому и варнинги, что может быть ошибкой, а может и
> нет. Также немало предупреждений - вкусовщина.
> -Wall - это время от времени посмотреть и обдумать предупреждения. Постоянно с
> этим компилировать - сумасшествие

Я мб не великий разработчик, но есть и директивы для отключения предупреждений в блоке кода. Выключил перед нужной командой, включил после нее. И сразу видно - так должно быть, это не разработчик проглядел.

А когда в солидных отраслевых библиотеках идет ругань про приведение типов это мягко говоря не красиво(пускай и в варнингах).

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

27. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  +2 +/
Сообщение от Evgeny (??) on 29-Май-17, 22:48 
>> Нет. Варнинги, потому и варнинги, что может быть ошибкой, а может и
>> нет. Также немало предупреждений - вкусовщина.
>> -Wall - это время от времени посмотреть и обдумать предупреждения. Постоянно с
>> этим компилировать - сумасшествие
> Я мб не великий разработчик, но есть и директивы для отключения предупреждений
> в блоке кода. Выключил перед нужной командой, включил после нее. И
> сразу видно - так должно быть, это не разработчик проглядел.

А теперь вспомним, что библиотека кросс-платформенная и собирается некоторым количеством компиляторов от MS (MSVC), GCC, clang, Oracle Studio compiler и некоторыми другими. Директивы в большинстве случаев - индивидуальные (некоторое пересечение есть, но не универсальное). Попытки делать #ifdef на каждый чих - сильно увеличат объём кода и вряд ли сильно улучшат его качество.
Затем добавим, что собирается под разные платформы: Windows, Darwin, Linux, FreeBSD, OpenBSD, NetBSD, Solaris, OpenIndiana и ещё несколько. От платформы к платформе варьируется размер типов данных, присутствие/отсутствие знака, соотношение размеров. И вот уже компилятор начинает "предупреждать", что такое-то выражение всегда ложь на этой платформе. Ну и отлично, соптимизируется в пропуск кода. А на другой платформе - будет реальное сравнение и отсутствие "предупреждений". Попытки найти решение с помощью прекомпилятора - тоже не приводят к универсальным рецептам, так как прекомпиляторные константы тоже не универсальные.

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

А так - да, периодически стоит собирать с -Wall -Wextra

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

28. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  +/
Сообщение от Аноним (??) on 29-Май-17, 23:01 
Если говорить о ругани на неявное приведение типов, о которой говорилось выше, то никаких специфичных для компилятора директив не требуется. Замену на явное приведение с удовольствием проглотит любой компилятор.
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

29. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  +/
Сообщение от Evgeny (??) on 29-Май-17, 23:11 
> Если говорить о ругани на неявное приведение типов, о которой говорилось выше,
> то никаких специфичных для компилятора директив не требуется. Замену на явное
> приведение с удовольствием проглотит любой компилятор.

Это не случай libmicrohttpd.
Но, кстати, тоже не очень показательно - опять-таки, на разных платформах - разные размеры у типов данных. Когда-то один больше, когда-то другой. Что к чему приводить в случае сравнениях "x > y"?

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

14. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  –2 +/
Сообщение от Нанобот (ok) on 29-Май-17, 17:05 
вот представь себе ситуацию: сделал ты программку с этим твоим -Wall. и выложил куда-то. её скачали и начали компилировать всякие сомнительные личности, у каждой из них свой компилятор со своим виденьем того, где нужно предупреждения предупреждать, где не нужно. и в результате вполне рабочий код у половины не компилируется. замучаешься исправлять ошибки компиляции на ровном месте.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

19. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  +1 +/
Сообщение от Аноним (??) on 29-Май-17, 20:52 
Тебе же не предлагают ещё и -Werror включать по умолчанию.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

31. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  +/
Сообщение от Michael Shigorin email(ok) on 30-Май-17, 10:34 
> вот представь себе ситуацию: сделал ты программку с этим твоим -Wall.
> [...] в результате вполне рабочий код у половины не компилируется.

Если говорить о сочетании -Wall -Werror, то (прошвырнувшись быстро по тому, что под рукой) некоторые апстримы вроде zstd, libmikmod или slocate такое практикуют (а в альте это довольно распространённая практика -- чинить -Wall и включать -Werror; но это всё-таки про более узкое сочетание компиляторов и платформ, конечно).

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "Подведены итоги аудита кода библиотеки GNU libmicrohttpd"  +1 +/
Сообщение от Аноним (??) on 29-Май-17, 17:21 
Качественный и законеченный - да. А уже качественный, но еще развивающийся может выдавать несущественные предупреждения.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру