From 6c4d37ee686a81dd28a81c4f30c676d3a5d8ba48 Mon Sep 17 00:00:00 2001
From: Deomid Ryabkov <rojer@cesanta.com>
Date: Wed, 23 Dec 2015 16:54:33 +0100
Subject: [PATCH] Free previous ssl context in mg_set_ssl

    PUBLISHED_FROM=9f595222bce1fe8d0917649e36ce3be40eee1775
---
 mongoose.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/mongoose.c b/mongoose.c
index 9dd1d1e09..45500c8b7 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -2387,6 +2387,15 @@ const char *mg_set_ssl(struct mg_connection *nc, const char *cert,
   const char *result = NULL;
   DBG(("%p %s %s", nc, (cert ? cert : ""), (ca_cert ? ca_cert : "")));
 
+  if (nc->ssl != NULL) {
+    SSL_free(nc->ssl);
+    nc->ssl = NULL;
+  }
+  if (nc->ssl_ctx != NULL) {
+    SSL_CTX_free(nc->ssl_ctx);
+    nc->ssl_ctx = NULL;
+  }
+
   if ((nc->flags & MG_F_LISTENING) &&
       (nc->ssl_ctx = SSL_CTX_new(SSLv23_server_method())) == NULL) {
     result = "SSL_CTX_new() failed";
-- 
GitLab