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

Slawa Olhovchenkov slw на zxy.spb.ru
Ср Окт 5 10:10:22 UTC 2022


On Wed, Oct 05, 2022 at 09:24:19AM +0000, Korobov Vladimir via nginx-ru wrote:

> Окей, неправально выразился. 
> Я понимаю, что делает этот патч и он не делает хуже.

окей, возьмем скажем второй кусок патча.

diff -r ba5cf8f73a2d -r ee42d7efc9a6
src/http/modules/ngx_http_proxy_module.c
--- a/src/http/modules/ngx_http_proxy_module.c  Thu Sep 08 13:53:49
2022 +0400
+++ b/src/http/modules/ngx_http_proxy_module.c  Fri Sep 23 03:52:37
2022 -0700
@@ -1485,9 +1485,11 @@

             continue;
         }
-
-        code = *(ngx_http_script_code_pt *) e.ip;
-        code((ngx_http_script_engine_t *) &e);
+
+        if (*(uintptr_t *) e.ip) {
+            code = *(ngx_http_script_code_pt *) e.ip;
+            code((ngx_http_script_engine_t *) &e);
+        }

         *e.pos++ = ':'; *e.pos++ = ' ';

взяли и просто выкинули исполнение кода (вопрос о том, может ли в e.ip
вообще чисто теоретически быть NULL -- пока опустим) раскрытия макросов.

но сдвиг по строке оставили. это точно то, что надо делать и это не
сделает хуже?

при этом, если посмотреть внимательно, то ниже, после цикла while у
нас написанно

e.ip += sizeof(uintptr_t);

т.е. если предположить, что по какой-то причине у нас структрура
headers->values->elts (по которой и бежит e.ip) побилась, и там вдруг
возник NULL где не надо, то мы его пропустим и дальше будем уже
выполнять мусор. ну или еще NULL пропустим, пока мусор не попадется.
после этого его выполним.

точно-точно не хуже?

> С уважением,
> Владимир Коробов
> 
> 
> -----Original Message-----
> From: Slawa Olhovchenkov <slw на zxy.spb.ru> 
> Sent: Wednesday, October 5, 2022 12:13 PM
> To: Korobov Vladimir via nginx-ru <nginx-ru на nginx.org>
> Subject: Re: Исправления срабатываний статического анализатора.
> 
> On Wed, Oct 05, 2022 at 05:22:10AM +0000, Korobov Vladimir via nginx-ru wrote:
> 
> > Кажется, что да, что-то делают. Цели успокоить анализатора нет, тем более анализатор генерирует несколько сотен предупреждений, а исправляются патчем только несколько.
> 
> погоди-погоди, как так "кажется"?
> ны написал какой-то код, но сам не понимаешь что он делает?
> а не делает ли он хуже?
> 
> > С уважением,
> > Владимир Коробов
> > 
> > 
> > -----Original Message-----
> > From: Slawa Olhovchenkov <slw на zxy.spb.ru>
> > Sent: Tuesday, October 4, 2022 4:05 PM
> > To: Korobov Vladimir via nginx-ru <nginx-ru на nginx.org>
> > Subject: Re: Исправления срабатываний статического анализатора.
> > 
> > On Tue, Oct 04, 2022 at 12:00:57PM +0000, Korobov Vladimir via nginx-ru wrote:
> > 
> > > Добрый день
> > > 
> > > После проверки исходного кода статическим анализатором (Svace https://www.ispras.ru/technologies/svace/) выделено несколько потенциально опасных мест, закрывающихся приложенным патчем.
> > > 
> > > Прошу рассмотреть возможность включения указанных изменений в исходный код проекта.
> > 
> > а эти исправления на самом деле что делают?
> > Успокаивают статистический анализатор или исправляют ошибки?
> > _______________________________________________
> > nginx-ru mailing list -- nginx-ru на nginx.org To unsubscribe send an 
> > email to nginx-ru-leave на nginx.org 
> > _______________________________________________
> > nginx-ru mailing list -- nginx-ru на nginx.org To unsubscribe send an 
> > email to nginx-ru-leave на nginx.org
> _______________________________________________
> nginx-ru mailing list -- nginx-ru на nginx.org To unsubscribe send an email to nginx-ru-leave на nginx.org
> _______________________________________________
> nginx-ru mailing list -- nginx-ru на nginx.org
> To unsubscribe send an email to nginx-ru-leave на nginx.org



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