The ssl-default-server-* keywords (curves, sigalgs, client_sigalgs)
allocate memory via strdup() that was never freed when servers are
destroyed. This causes a memory leak per server instance.
Add ha_free() calls guarded by the same OpenSSL API version checks
matching the allocation guards in cfgparse-ssl.c.
This change should be backported to all supported branches.
srv->ssl_ctx.sni = NULL;
#endif
ha_free(&srv->ssl_ctx.ciphers);
+#if defined(SSL_CTX_set1_curves_list)
+ ha_free(&srv->ssl_ctx.curves);
+#endif
+#if defined(SSL_CTX_set1_sigalgs_list)
+ ha_free(&srv->ssl_ctx.sigalgs);
+#endif
+#if defined(SSL_CTX_set1_client_sigalgs_list)
+ ha_free(&srv->ssl_ctx.client_sigalgs);
+#endif
#ifdef HAVE_SSL_CTX_SET_CIPHERSUITES
ha_free(&srv->ssl_ctx.ciphersuites);
#endif