Welcome! Log In Create A New Profile

Advanced

Re: Статический анализ nginx

Maxim Dounin
November 22, 2022 09:20AM
Hello!

On Tue, Nov 22, 2022 at 01:49:22PM +0000, Korobov Vladimir via nginx-ru wrote:

> Статический анализ исходного кода выявил некоторые непонятные для меня места.
> ngx_http_proxy_module.c: строка 1489
>
> while (*(uintptr_t *) le.ip) {
>
> lcode = *(ngx_http_script_len_code_pt *) le.ip;
> (void) lcode(&le);

[...]

> code = *(ngx_http_script_code_pt *) e.ip;
> code((ngx_http_script_engine_t *) &e);

[...]

> }
>
> В этой строке e.ip не проверяется на валидность перед
> использованием, хотя в этом файле это всегда делается перед
> использованием. Помогите понять почему?

Тут e.ip используется после проверки le.ip в начале цикла. Если
вдруг e.ip окажется NULL - это означает, что коды в
headers->lengths и headers->values рассинхронизированы, и всё
происходящее не имеет смысла.

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-ru mailing list -- nginx-ru@nginx.org
To unsubscribe send an email to nginx-ru-leave@nginx.org
Subject Author Posted

Статический анализ nginx

Korobov Vladimir via nginx-ru November 22, 2022 08:52AM

Re: Статический анализ nginx

Maxim Dounin November 22, 2022 09:20AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 263
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready