The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Обновление DNS-сервера BIND 9.11.22, 9.16.6, 9.17.4 с устран..."
Отправлено Ordu, 21-Авг-20 17:44 
> Если тебе по сети пришел неправильный пакет, ты это обнаружил и уронил
> все, вместо того чтобы:
> отбросить пакет, записать в лог о наличии неправильного пакета. Но долбаны предпочитают
> крашить.
> Ситуация с NULL поинтереснее, если есть возможность вернут ошибку выше - то
> лучше вернуть ошибку, а не уронить все сразу. Если нет возможности
> вернуть ошибки, значит тут выхода больше нет.

Ты не думал, что эти ситуации могут жить совместно?

Пришёл неправильный пакет, ты это обнаружил, но лишь по косвенным признакам: тебе прилетел NULL туда, куда не должен прилетать. Что ты будешь делать?

Ну, точнее не так, это не ты обнаружил неправильный пакет, всё что ты обнаружил, что твоя программа иногда получает NULL там, где его не должно быть. Копая глубже, ты выяснил, что в процессе разборки запроса был упущен какой-то вариант кривости запроса, и вместо генерации ошибки, была сгенерирована кривая структура, описывающая этот запрос. Кривая структура ушла дальше на выполнение, и там вдруг образовался NULL в переменной, которая NotNULL. Но все эти копания произошли позже, уже после того как программа упала. А упасть она смогла, вместо выхода за границы массива, благодаря тому, что ты поставил assert в том месте, где по идее не могло быть NULL, или len>=size, или ещё чего-нибудь. Ты не видел как такое может случится, ты не знал как реагировать на то, что на твой взгляд не может случится, но на всякий случай подстраховался assert'ом.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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