haproxy/include/types
Willy Tarreau 17b4aa1adc BUG/MINOR: ssl: properly ref-count the tls_keys entries
Commit 200b0fa ("MEDIUM: Add support for updating TLS ticket keys via
socket") introduced support for updating TLS ticket keys from the CLI,
but missed a small corner case : if multiple bind lines reference the
same tls_keys file, the same reference is used (as expected), but during
the clean shutdown, it will lead to a double free when destroying the
bind_conf contexts since none of the lines knows if others still use
it. The impact is very low however, mostly a core and/or a message in
the system's log upon old process termination.

Let's introduce some basic refcounting to prevent this from happening,
so that only the last bind_conf frees it.

Thanks to Janusz Dziemidowicz and Thierry Fournier for both reporting
the same issue with an easy reproducer.

This fix needs to be backported from 1.6 to 1.8.
2018-07-18 08:59:50 +02:00
..
acl.h
action.h
applet.h MAJOR: applets: Use tasks, instead of rolling our own scheduler. 2018-05-26 20:03:30 +02:00
arg.h CLEANUP: Fix typo in ARGT_MSK6 comment 2018-01-25 22:25:40 +01:00
auth.h
backend.h MINOR: backend: implement random-based load balancing 2018-05-03 07:20:40 +02:00
cache.h MEDIUM: cache: enable the HTTP analysers 2017-11-20 19:22:27 +01:00
capture.h CLEANUP: pools: rename all pool functions and pointers to remove this "2" 2017-11-24 17:49:53 +01:00
channel.h
checks.h BUILD: checks: don't include server.h 2017-11-29 10:54:05 +01:00
cli.h MEDIUM: cli: Add payload support 2018-04-26 14:19:33 +02:00
compression.h
connection.h MINOR: mux: add a "show_fd" function to dump debugging information for "show fd" 2018-03-30 14:41:19 +02:00
counters.h MINOR: http: Log warning if (add|set)-header fails 2018-05-28 14:53:59 +02:00
dns.h MINOR: dns: new DNS options to allow/prevent IP address duplication 2018-07-12 17:56:44 +02:00
fd.h MINOR: pollers: move polled_mask outside of struct fdtab. 2018-05-06 06:27:34 +02:00
filters.h
freq_ctr.h
global.h MAJOR: applets: Use tasks, instead of rolling our own scheduler. 2018-05-26 20:03:30 +02:00
h1.h
hdr_idx.h
hlua.h MINOR: lua: Improve error message 2018-05-22 18:57:46 +02:00
lb_chash.h
lb_fas.h
lb_fwlc.h
lb_fwrr.h
lb_map.h
listener.h MINOR: config: Add threads support for "process" option on "bind" lines 2017-11-24 15:38:50 +01:00
log.h MINOR: log: Keep the ref when a log server is copied to avoid duplicate entries 2018-04-05 15:13:54 +02:00
mailers.h
map.h
obj_type.h
pattern.h
peers.h
pipe.h
port_range.h
proto_http.h MINOR: http: Add support for 421 Misdirected Request 2018-04-28 07:03:39 +02:00
proto_udp.h
protocol.h
proxy.h CLEANUP: proxy: slightly reorder the struct proxy to reduce holes 2017-11-26 11:10:52 +01:00
queue.h BUG/MAJOR: threads/queue: Fix thread-safety issues on the queues management 2018-03-19 10:03:06 +01:00
sample.h
server.h REORG: compact "struct server" 2018-03-21 05:04:01 +01:00
session.h
shctx.h MEDIUM: shctx: use unsigned int for len and block_count 2017-11-21 21:35:04 +01:00
signal.h
spoe.h CLEANUP: spoe: Remove unused variables the agent structure 2018-05-18 15:04:46 +02:00
ssl_sock.h BUG/MINOR: ssl: properly ref-count the tls_keys entries 2018-07-18 08:59:50 +02:00
stats.h MINOR: http: Log warning if (add|set)-header fails 2018-05-28 14:53:59 +02:00
stick_table.h MINOR: stick-tables: Adds support for new "gpc1" and "gpc1_rate" counters. 2018-01-31 09:40:05 +01:00
stream.h BUG/MAJOR: threads/queue: Fix thread-safety issues on the queues management 2018-03-19 10:03:06 +01:00
stream_interface.h MINOR: stream-int: set flag SI_FL_CLEAN_ABRT when mux supports clean aborts 2017-12-20 16:56:32 +01:00
task.h MAJOR: tasks: Introduce tasklets. 2018-05-26 20:03:19 +02:00
template.h
vars.h