mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-20 10:40:13 +00:00
BUILD: ssl: buggy -Werror=dangling-pointer since gcc 13.0
GCC complains about swapping 2 heads list, one local and one global. gcc -Iinclude -O2 -g -Wall -Wextra -Wundef -Wdeclaration-after-statement -Wfatal-errors -Wtype-limits -Wshift-negative-value -Wshift-overflow=2 -Wduplicated-cond -Wnull-dereference -fwrapv -Wno-address-of-packed-member -Wno-unused-label -Wno-sign-compare -Wno-unused-parameter -Wno-clobbered -Wno-missing-field-initializers -Wno-cast-function-type -Wno-string-plus-int -Wno-atomic-alignment -Werror -DDEBUG_STRICT -DDEBUG_MEMORY_POOLS -DUSE_EPOLL -DUSE_NETFILTER -DUSE_POLL -DUSE_THREAD -DUSE_BACKTRACE -DUSE_TPROXY -DUSE_LINUX_TPROXY -DUSE_LINUX_SPLICE -DUSE_LIBCRYPT -DUSE_CRYPT_H -DUSE_GETADDRINFO -DUSE_OPENSSL -DUSE_SSL -DUSE_LUA -DUSE_ACCEPT4 -DUSE_ZLIB -DUSE_CPU_AFFINITY -DUSE_TFO -DUSE_NS -DUSE_DL -DUSE_RT -DUSE_MATH -DUSE_SYSTEMD -DUSE_PRCTL -DUSE_THREAD_DUMP -DUSE_QUIC -DUSE_SHM_OPEN -DUSE_PCRE -DUSE_PCRE_JIT -I/github/home/opt/include -I/usr/include -DCONFIG_HAPROXY_VERSION=\"2.8-dev8-7d23e8d1a6db\" -DCONFIG_HAPROXY_DATE=\"2023/04/24\" -c -o src/ssl_sample.o src/ssl_sample.c In file included from include/haproxy/pool.h:29, from include/haproxy/chunk.h:31, from include/haproxy/dynbuf.h:33, from include/haproxy/channel.h:27, from include/haproxy/applet.h:29, from src/ssl_sock.c:47: src/ssl_sock.c: In function 'tlskeys_finalize_config': include/haproxy/list.h:48:88: error: storing the address of local variable 'tkr' in 'tlskeys_reference.p' [-Werror=dangling-pointer=] 48 | #define LIST_INSERT(lh, el) ({ (el)->n = (lh)->n; (el)->n->p = (lh)->n = (el); (el)->p = (lh); (el); }) | ~~~~~~~~^~~~~~ src/ssl_sock.c:1086:9: note: in expansion of macro 'LIST_INSERT' 1086 | LIST_INSERT(&tkr, &tlskeys_reference); | ^~~~~~~~~~~ compilation terminated due to -Wfatal-errors. This appears with gcc 13.0. The fix uses LIST_SPLICE() instead of inserting the head of the local list in the global list. Should fix issue #2136 .
This commit is contained in:
parent
c75c41c35f
commit
930afdf614
@ -1083,8 +1083,7 @@ static int tlskeys_finalize_config(void)
|
||||
}
|
||||
|
||||
/* swap root */
|
||||
LIST_INSERT(&tkr, &tlskeys_reference);
|
||||
LIST_DELETE(&tkr);
|
||||
LIST_SPLICE(&tlskeys_reference, &tkr);
|
||||
return ERR_NONE;
|
||||
}
|
||||
#endif /* SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB */
|
||||
|
Loading…
Reference in New Issue
Block a user