]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MINOR: ssl: properly ref-count the tls_keys entries
authorWilly Tarreau <w@1wt.eu>
Tue, 17 Jul 2018 08:05:32 +0000 (10:05 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 18 Jul 2018 06:59:50 +0000 (08:59 +0200)
commit17b4aa1adc88987f411ae007b7865c59cdf37c1b
treece92a88c5036840661fe6f1b99fe8dc71612c577
parentfaf4aac742622c0814057b1433baacb32dd758a4
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.
include/types/ssl_sock.h
src/ssl_sock.c