haproxy/src
Aurelien DARRAGON 0cfbeb1ae8 BUG/MINOR: ring: free ring's allocated area not ring's usable area when using maps
Since 40d1c84bf0 ("BUG/MAJOR: ring: free the ring storage not the ring
itself when using maps"), munmap() call for startup_logs's ring and
file-backed rings fails to work (EINVAL) and causes memory leaks during
process cleanup.

munmap() fails because it is called with the ring's usable area pointer
which is an offset from the underlying original memory block allocated
using mmap(). Indeed, ring_area() helper function was misused because
it didn't explicitly mention that the returned address corresponds to
the usable storage's area, not the allocated one.

To fix the issue, we add an explicit ring_allocated_area() helper to
return the allocated area for the ring, just like we already have
ring_allocated_size() for the allocated size, and we properly use both
the allocated size and allocated area to manipulate them using munmap()
and msync().

No backport needed.
2024-05-21 11:42:35 +02:00
..
acl.c BUG/MINOR: acl: support built-in ACLs with acl() sample 2024-05-06 18:42:54 +02:00
action.c
activity.c MEDIUM: cli/applet: Stop to test opposite SC in I/O handler of CLI commands 2024-03-28 17:28:20 +01:00
applet.c MINOR: applet: report about buffer allocation success 2024-05-10 17:18:13 +02:00
arg.c
auth.c
backend.c MINOR: stats: convert age as generic column for proxy stat 2024-05-02 10:55:25 +02:00
base64.c
cache.c MINOR: applet: set the blocking flag in the buffer allocation function 2024-05-10 17:18:13 +02:00
calltrace.c
cbuf.c
cfgcond.c
cfgdiag.c
cfgparse-global.c CLEANUP: dynbuf: move the reserve and limit parsers to dynbuf.c 2024-04-27 09:36:36 +02:00
cfgparse-listen.c MINOR: stats: use STAT_F_* prefix for flags 2024-04-22 16:25:18 +02:00
cfgparse-quic.c MINOR: mux-quic: support glitches 2024-05-16 10:58:20 +02:00
cfgparse-ssl.c CLEANUP: ssl/ocsp: remove the deprecated parsing code for "ocsp-update" 2024-05-17 17:35:51 +02:00
cfgparse-tcp.c MINOR: capabilities: add cap_sys_admin support 2024-04-30 21:40:17 +02:00
cfgparse-unix.c
cfgparse.c BUG/MINOR: cfgparse: use curproxy global var from config post validation 2024-05-06 18:45:47 +02:00
channel.c
check.c MEDIUM: dynbuf: generalize the use of b_dequeue() to detach buffer_wait 2024-05-10 17:18:13 +02:00
chunk.c
cli.c MINOR: applet: set the blocking flag in the buffer allocation function 2024-05-10 17:18:13 +02:00
clock.c BUILD: clock: improve check for pthread_getcpuclockid() 2024-05-06 08:25:17 +02:00
compression.c MINOR: dynbuf: pass a criticality argument to b_alloc() 2024-05-10 17:18:13 +02:00
connection.c MINOR: connection: Add samples to retrieve info on streams for a connection 2024-05-06 22:00:01 +02:00
cpuset.c CLEANUP: Reapply xalloc_cast.cocci 2024-04-02 07:27:33 +02:00
debug.c MINOR: init: use RLIMIT_DATA instead of RLIMIT_AS 2024-04-19 17:36:40 +02:00
dgram.c
dict.c
dns_ring.c MEDIUM: ring/applet: turn the wait_entry list to an mt_list instead 2024-03-25 17:34:19 +00:00
dns.c MEDIUM: ring/applet: turn the wait_entry list to an mt_list instead 2024-03-25 17:34:19 +00:00
dynbuf.c MEDIUM: dynbuf: implement emergency buffers 2024-05-10 17:18:13 +02:00
eb32sctree.c
eb32tree.c
eb64tree.c
ebimtree.c
ebistree.c
ebmbtree.c
ebpttree.c
ebsttree.c
ebtree.c
errors.c BUG/MINOR: ring: free ring's allocated area not ring's usable area when using maps 2024-05-21 11:42:35 +02:00
ev_epoll.c
ev_evports.c Revert: MEDIUM: evports: permit to report multiple events at once" 2024-05-17 15:57:18 +02:00
ev_kqueue.c
ev_poll.c
ev_select.c
event_hdl.c CLEANUP: Reapply strcmp.cocci (2) 2024-04-02 07:27:33 +02:00
extcheck.c
fcgi-app.c MEDIUM: tree-wide: add logformat expressions wrapper 2024-04-04 19:10:01 +02:00
fcgi.c
fd.c BUG/MEDIUM: fd: prevent memory waste in fdtab array 2024-05-17 15:25:03 +02:00
filters.c
fix.c
flt_bwlim.c BUG/MINOR: bwlim/config: fix missing '\n' after error messages 2024-04-03 17:34:36 +02:00
flt_http_comp.c MINOR: dynbuf: pass a criticality argument to b_alloc() 2024-05-10 17:18:13 +02:00
flt_spoe.c MEDIUM: dynbuf: generalize the use of b_dequeue() to detach buffer_wait 2024-05-10 17:18:13 +02:00
flt_trace.c
freq_ctr.c
frontend.c MINOR: counters: move freq-ctr from proxy/server into counters struct 2024-05-02 10:55:25 +02:00
guid.c MINOR: guid: define guid_is_valid_fmt() 2024-04-26 11:29:25 +02:00
h1_htx.c
h1.c BUG/MAJOR: h1: Be stricter on request target validation during message parsing 2024-05-15 21:20:37 +02:00
h2.c
h3_stats.c MINOR: h3/qpack: adjust naming for errors 2024-05-16 10:31:17 +02:00
h3.c MINOR: h3: report glitch on RFC violation 2024-05-16 10:58:54 +02:00
haproxy.c BUG/MINOR: haproxy: only tid 0 must not sleep if got signal 2024-05-06 18:39:08 +02:00
hash.c
hlua_fcn.c MINOR: stats: define stats-file output format support 2024-04-26 10:20:57 +02:00
hlua.c MEDIUM: hlua: take nbthread into account in hlua_get_nb_instruction() 2024-05-15 11:59:44 +02:00
hpack-dec.c
hpack-enc.c
hpack-huff.c
hpack-tbl.c
hq_interop.c MINOR: dynbuf: pass a criticality argument to b_alloc() 2024-05-10 17:18:13 +02:00
http_acl.c
http_act.c MAJOR: log: implement proper postparsing for logformat expressions 2024-04-04 19:10:01 +02:00
http_ana.c MINOR: stats: use STAT_F_* prefix for flags 2024-04-22 16:25:18 +02:00
http_client.c MINOR: dynbuf: pass a criticality argument to b_alloc() 2024-05-10 17:18:13 +02:00
http_conv.c
http_ext.c OPTIM: http_ext: avoid useless copy in http_7239_extract_{ipv4,ipv6} 2024-03-25 16:24:15 +01:00
http_fetch.c MEDIUM: tree-wide: add logformat expressions wrapper 2024-04-04 19:10:01 +02:00
http_htx.c MAJOR: log: implement proper postparsing for logformat expressions 2024-04-04 19:10:01 +02:00
http_rules.c MAJOR: log: implement proper postparsing for logformat expressions 2024-04-04 19:10:01 +02:00
http.c
htx.c
init.c
jwt.c
lb_chash.c MEDIUM: lb-chash: Deterministic node hashes based on server address 2024-04-02 07:00:10 +02:00
lb_fas.c
lb_fwlc.c
lb_fwrr.c
lb_map.c
lb_ss.c MINOR: lbprm: implement true "sticky" balance algo 2024-03-29 17:08:37 +01:00
linuxcap.c MINOR: capabilities: add cap_sys_admin support 2024-04-30 21:40:17 +02:00
listener.c MINOR: counters: move freq-ctr from proxy/server into counters struct 2024-05-02 10:55:25 +02:00
log.c BUILD: log: get rid of non-portable strnlen() func 2024-05-17 15:24:53 +02:00
lru.c BUG/MINOR: lru: fix the standalone test case for invalid revision 2024-04-13 08:43:12 +02:00
mailers.c
map.c MEDIUM: cli/applet: Stop to test opposite SC in I/O handler of CLI commands 2024-03-28 17:28:20 +01:00
mjson.c
mqtt.c
mux_fcgi.c BUG/MEDIUM: muxes: enforce buf_wait check in takeover() 2024-05-15 19:37:12 +02:00
mux_h1.c MEDIUM: mux-h1: Support C-L/T-E header suppressions when sending messages 2024-05-17 16:33:53 +02:00
mux_h2.c BUG/MEDIUM: muxes: enforce buf_wait check in takeover() 2024-05-15 19:37:12 +02:00
mux_pt.c MINOR: muxes: Add ctl commands to get info on streams for a connection 2024-05-06 22:00:00 +02:00
mux_quic.c MINOR: mux-quic: support glitches 2024-05-16 10:58:20 +02:00
mworker-prog.c
mworker.c MEDIUM: mworker: get rid of libsystemd 2024-04-03 15:53:18 +02:00
namespace.c
ncbuf.c
pattern.c
payload.c
peers.c CLEANUP: assorted typo fixes in the code and comments 2024-05-03 09:01:36 +02:00
pipe.c
pool.c DEBUG: pools: report the data around the offending area in case of mismatch 2024-04-12 18:01:55 +02:00
proto_quic.c MEDIUM: proto: make common fd checks in sock_create_server_socket 2024-04-30 21:39:24 +02:00
proto_rhttp.c
proto_sockpair.c
proto_tcp.c MEDIUM: proto: make common fd checks in sock_create_server_socket 2024-04-30 21:39:24 +02:00
proto_udp.c
proto_uxdg.c
proto_uxst.c MEDIUM: proto: make common fd checks in sock_create_server_socket 2024-04-30 21:39:24 +02:00
protocol.c MINOR: listener/protocol: add proto name in alerts 2024-04-12 18:51:40 +02:00
proxy.c MINOR: counters: move last_change into counters struct 2024-05-02 10:55:25 +02:00
qmux_http.c
qmux_trace.c
qpack-dec.c MINOR: h3/qpack: adjust naming for errors 2024-05-16 10:31:17 +02:00
qpack-enc.c
qpack-tbl.c
queue.c MINOR: counters: move last_change into counters struct 2024-05-02 10:55:25 +02:00
quic_ack.c
quic_cc_cubic.c BUILD: quic: 32 bits compilation issue (QUIC_MIN() usage) 2024-04-03 11:14:50 +02:00
quic_cc_newreno.c MINOR: quic: HyStart++ implementation (RFC 9406) 2024-04-02 18:47:19 +02:00
quic_cc_nocc.c
quic_cc.c
quic_cid.c
quic_cli.c MEDIUM: cli/applet: Stop to test opposite SC in I/O handler of CLI commands 2024-03-28 17:28:20 +01:00
quic_conn.c MINOR: h3/qpack: adjust naming for errors 2024-05-16 10:31:17 +02:00
quic_fctl.c
quic_frame.c BUG/MINOR: quic: reject unknown frame type 2024-02-15 17:04:17 +01:00
quic_loss.c MINOR: quic: Add a counter for reordered packets 2024-02-14 11:32:29 +01:00
quic_openssl_compat.c
quic_retransmit.c
quic_retry.c BUG/MEDIUM: quic: don't blindly rely on unaligned accesses 2024-04-06 00:07:49 +02:00
quic_rx.c BUG/MEDIUM: quic: don't blindly rely on unaligned accesses 2024-04-06 00:07:49 +02:00
quic_sock.c MINOR: dynbuf: pass a criticality argument to b_alloc() 2024-05-10 17:18:13 +02:00
quic_ssl.c MEDIUM: ssl: allow to change the OpenSSL security level from global section 2024-03-12 17:37:11 +01:00
quic_stats.c MINOR: stats: introduce a more expressive stat definition method 2024-04-26 10:20:57 +02:00
quic_stream.c
quic_tls.c MINOR: quic: uniformize sending methods for handshake 2024-04-10 11:06:41 +02:00
quic_tp.c BUG/MEDIUM: quic: don't blindly rely on unaligned accesses 2024-04-06 00:07:49 +02:00
quic_trace.c
quic_tx.c MINOR: dynbuf: pass a criticality argument to b_alloc() 2024-05-10 17:18:13 +02:00
raw_sock.c
regex.c
resolvers.c MINOR: counters: move last_change into counters struct 2024-05-02 10:55:25 +02:00
ring.c CLEANUP: assorted typo fixes in the code and comments 2024-04-17 11:14:44 +02:00
sample.c DOC: Update UUID references to RFC 9562 2024-05-15 11:40:08 +02:00
server_state.c MINOR: counters: move last_change into counters struct 2024-05-02 10:55:25 +02:00
server.c BUG/MEDIUM: server: clear purgeable conns before server deletion 2024-05-15 15:01:55 +02:00
session.c MEDIUM: tree-wide: add logformat expressions wrapper 2024-04-04 19:10:01 +02:00
sha1.c
shctx.c MEDIUM: shctx: Naming shared memory context 2024-04-24 10:25:38 +02:00
signal.c
sink.c BUG/MINOR: ring: free ring's allocated area not ring's usable area when using maps 2024-05-21 11:42:35 +02:00
slz.c
sock_inet.c
sock_unix.c MEIDUM: unix sock: use my_socketat to create bind socket 2024-04-30 21:38:24 +02:00
sock.c MINOR: sock: add EPERM case in sock_handle_system_err 2024-04-30 21:39:32 +02:00
ssl_ckch.c MINOR: ssl: check parameter in ckch_conf_cmp() 2024-05-21 11:09:59 +02:00
ssl_crtlist.c CLEANUP: ssl/cli: remove unused code in dump_crtlist_conf 2024-05-21 10:58:09 +02:00
ssl_gencert.c MEDIUM: ssl: allow to change the OpenSSL security level from global section 2024-03-12 17:37:11 +01:00
ssl_ocsp.c MEDIUM: ssl/cli: handle crt-store keywords in crt-list over the CLI 2024-05-17 17:35:51 +02:00
ssl_sample.c MINOR: ssl: implement keylog fetches for backend connections 2024-04-19 14:48:44 +02:00
ssl_sock.c MINOR: ssl: ckch_conf_cmp() compare multiple ckch_conf structures 2024-05-17 17:35:51 +02:00
ssl_utils.c
stats-file.c BUILD: stats: remove non portable getline() usage 2024-05-17 14:53:19 +02:00
stats-html.c BUG/MINOR: stats: Don't state the 303 redirect response is chunked 2024-05-17 16:33:53 +02:00
stats-json.c MINOR: stats: update ambiguous "metrics" naming to "stat_cols" 2024-04-26 10:20:57 +02:00
stats-proxy.c MINOR: stats: extract proxy clear-counter in a dedicated function 2024-05-02 16:43:26 +02:00
stats.c CLEANUP: assorted typo fixes in the code and comments 2024-05-03 09:01:36 +02:00
stconn.c MINOR: dynbuf: pass a criticality argument to b_alloc() 2024-05-10 17:18:13 +02:00
stick_table.c BUILD: stick-tables: silence build warnings when threads are disabled 2024-04-24 08:23:56 +02:00
stream.c MEDIUM: stream: allocate without queuing when retrying 2024-05-10 17:18:13 +02:00
systemd.c MEDIUM: mworker: get rid of libsystemd 2024-04-03 15:53:18 +02:00
task.c
tcp_act.c MINOR: rhttp: Don't require SSL when attach-srv name parsing 2024-05-14 16:39:07 +02:00
tcp_rules.c
tcp_sample.c
tcpcheck.c MEDIUM: tree-wide: add logformat expressions wrapper 2024-04-04 19:10:01 +02:00
thread.c
time.c
tools.c DOC: Update UUID references to RFC 9562 2024-05-15 11:40:08 +02:00
trace.c MINOR: session: rename private conns elements 2024-03-14 15:21:02 +01:00
uri_auth.c MINOR: stats: use STAT_F_* prefix for flags 2024-04-22 16:25:18 +02:00
uri_normalizer.c
vars.c MAJOR: log: implement proper postparsing for logformat expressions 2024-04-04 19:10:01 +02:00
version.c
wdt.c
xprt_handshake.c
xprt_quic.c BUG/MEDIUM: quic: fix connection freeze on post handshake 2024-03-06 10:39:57 +01:00