#2539 closed defect (fixed)
--with-http_v3_module changes the layout of the ngx_connection_s structure that can be used by modules, but does not change the signature
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | major | Milestone: | nginx-1.26 |
Component: | http/3 | Version: | 1.25.x |
Keywords: | Cc: | dmikhin@… | |
uname -a: | Linux d334af5216ac 5.15.0-73-generic #80~20.04.1-Ubuntu SMP Wed May 17 14:58:14 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux | ||
nginx -V: |
nginx version: nginx/1.25.2
built by gcc 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2) built with OpenSSL 1.1.1f 31 Mar 2020 TLS SNI support enabled configure arguments: --with-http_v3_module |
Description
Nginx compiled with v3 support has following signature:
./configure --with-http_v3_module && make -j8 egrep -ao '.,.,.,[01]{34}' objs/nginx 8,4,8,0000111111010111001110111111000110
Nginx compiled without v3 support will have the same signature:
./configure && make -j8 egrep -ao '.,.,.,[01]{34}' objs/nginx 8,4,8,0000111111010111001110101111000110
But nginx compiled with v3 support has different struct ngx_connection_s layout, it has additional 'quic' field - https://trac.nginx.org/nginx/browser/nginx/src/core/ngx_connection.h?rev=58afcd72446ff33811e773f1cabb7866a92a09a0#L153. Thus, if we compile a module for nginx without v3 support and try to load it into nginx with v3 support, the module will be successfully loaded because they have the same versions and signatures, but the module will behave badly due to different structure layouts.
Change History (4)
comment:1 by , 15 months ago
comment:3 by , 14 months ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
Thanks for reporting this. QUIC indeed should be included in signature.