Re: Сборка 1.21.7 с модулем naxsi

Sergey Kandaurov pluknet на nginx.com
Пн Май 30 10:23:13 UTC 2022


> On 30 May 2022, at 10:17, oradba25 <nginx-forum на forum.nginx.org> wrote:
> 
> Здравствуйте
> 
> Linux 3.10.0-1160.66.1.el7.x86_64
> 
> Компиляция/сборка самого nginx проходит без проблем
> При попытке компилить сам модуль naxsi выходит ошибка
> cc -c -fPIC -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror
> -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I
> src/http -I src/http/modules -I src/http/v2 -I src/mail -I src/stream \
>        -o objs/addon/naxsi_src/naxsi_runtime.o \
>        ../naxsi/naxsi_src/naxsi_runtime.c
> In file included from src/event/ngx_event.h:526:0,
>                 from ../naxsi/naxsi_src/naxsi.h:18,
>                 from ../naxsi/naxsi_src/naxsi_runtime.c:8:
> src/event/ngx_event_udp.h:37:27: ошибка: field «pkt6» has incomplete type
>     struct in6_pktinfo    pkt6;
>                           ^
> make[1]: *** [objs/addon/naxsi_src/naxsi_runtime.o] Ошибка 1
> 
> Поиском попадалось, что это возможно из-за более раннего включения системных
> заголовков, чем заголовки nginx
> Но тут вроде все безопасно
> 

Объяснение здесь:
https://trac.nginx.org/nginx/ticket/2312#comment:4
http://nginx.org/en/docs/dev/development_guide.html#include_files

> В самом naxsi.h
> #include "ext/libinjection/libinjection_sqli.h"
> #include "ext/libinjection/libinjection_xss.h"
> #include <ctype.h>
> #include <nginx.h>
> #include <ngx_config.h>
> #include <ngx_core.h>
> #include <ngx_event.h>           <--- Вот тут и ломается
> #include <ngx_http.h>
> #include <ngx_http_core_module.h>
> #include <ngx_md5.h>
> #include <pcre.h>
> 
> В двух первых подключается только string.h
> 
> Лечится комментированием в ngx_event_udp.h
> #if (NGX_HAVE_INET6 && NGX_HAVE_IPV6_RECVPKTINFO)
> /*    struct in6_pktinfo    pkt6;*/
> #endif
> 

-- 
Sergey Kandaurov



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