Re: Исправления срабатываний статического анализатора.

Eugene Grosbein eugen на grosbein.net
Вт Окт 4 16:33:14 UTC 2022


04.10.2022 20:11, Evgeniy Berdnikov пишет:
> On Tue, Oct 04, 2022 at 12:00:57PM +0000, Korobov Vladimir via nginx-ru wrote:
>>    После проверки исходного кода статическим анализатором (Svace
>>    https://www.ispras.ru/technologies/svace/) выделено несколько потенциально
>>    опасных мест, закрывающихся приложенным патчем.
> 
>  Тупое выбрасывание кусков кода при проверке указателя на NULL не только
>  не решает проблему, но создаёт более опасную ситуацию, когда код приложения
>  может работать неверно, но ничего об этом не сообщать, так что поймать баг
>  станет очень трудно. Лучше сегфолт в в точно локализованном месте, чем
>  глюки непонятно где и непонятно отчего.
> 
>  При потенциальной возможности зануления указателя следует ловить и
>  обрабатывать такое исключение. В противном случае нет смысла в проверке.
>  Задача же не в ублажении тупых анализаторов, а в правильной работе кода.

Как пользователь разнообразного софта, могу доложить, что сегфолт очень фиговая обработка исключений.
Проверка указателя на NULL перед разадресацией в том случае, когда нельзя гарантировать что он не NULL,
практически всегда благо. Другой вопрос, что потом делать, если вдруг: молча восстановиться и ехать дальше,
или не молча, а с сообщением в лог, или выдать даже stack trace и выйти. Но что угодно лучше сырого сегфолта.




Подробная информация о списке рассылки nginx-ru