aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Grin (Karlson2k) <k2k@narod.ru>2020-10-22 17:01:52 +0300
committerEvgeny Grin (Karlson2k) <k2k@narod.ru>2020-10-22 17:02:27 +0300
commit13fe456581693421459100d60a7a0f93e05ce533 (patch)
tree4f29c60faa432237614af3be41c3589e5ad9da64
parent53fec1c213590314369868abc2768f155f6f6938 (diff)
downloadlibmicrohttpd-13fe456581693421459100d60a7a0f93e05ce533.tar.gz
libmicrohttpd-13fe456581693421459100d60a7a0f93e05ce533.zip
new_connection_prepare_(): added check for valid TLS initialisation
-rw-r--r--src/microhttpd/daemon.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
index ed4cd5ca..98b93ae5 100644
--- a/src/microhttpd/daemon.c
+++ b/src/microhttpd/daemon.c
@@ -2535,10 +2535,26 @@ new_connection_prepare_ (struct MHD_Daemon *daemon,
2535#endif 2535#endif
2536 connection->tls_state = MHD_TLS_CONN_INIT; 2536 connection->tls_state = MHD_TLS_CONN_INIT;
2537 MHD_set_https_callbacks (connection); 2537 MHD_set_https_callbacks (connection);
2538 gnutls_init (&connection->tls_session, 2538 if ((GNUTLS_E_SUCCESS != gnutls_init (&connection->tls_session, flags)) ||
2539 flags); 2539 (GNUTLS_E_SUCCESS != gnutls_priority_set (connection->tls_session,
2540 gnutls_priority_set (connection->tls_session, 2540 daemon->priority_cache)))
2541 daemon->priority_cache); 2541 {
2542 gnutls_deinit (connection->tls_session);
2543 MHD_socket_close_chk_ (client_socket);
2544 MHD_ip_limit_del (daemon,
2545 addr,
2546 addrlen);
2547 free (connection->addr);
2548 free (connection);
2549#ifdef HAVE_MESSAGES
2550 MHD_DLOG (connection->daemon,
2551 _ ("Failed to initialise TLS session.\n"));
2552#endif
2553#if EPROTO
2554 errno = EPROTO;
2555#endif
2556 return MHD_NO;
2557 }
2542 gnutls_session_set_ptr (connection->tls_session, 2558 gnutls_session_set_ptr (connection->tls_session,
2543 connection); 2559 connection);
2544 switch (daemon->cred_type) 2560 switch (daemon->cred_type)