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