From 62824f96d4be7d531ce45e9442cb26ed4ce4c05d Mon Sep 17 00:00:00 2001 From: Andy Green Date: Sun, 10 Aug 2014 09:50:42 +0800 Subject: [PATCH] ssl fix excessive crash workaround Signed-off-by: Andy Green --- lib/server.c | 7 +++---- lib/ssl.c | 5 +++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/server.c b/lib/server.c index d6a65cf0..aad5286d 100644 --- a/lib/server.c +++ b/lib/server.c @@ -731,10 +731,9 @@ int lws_server_socket_service(struct libwebsocket_context *context, break; } - if (new_wsi) - if (lws_server_socket_service_ssl(context, &wsi, new_wsi, - accept_fd, pollfd)) - goto fail; + if (lws_server_socket_service_ssl(context, &wsi, new_wsi, + accept_fd, pollfd)) + goto fail; return 0; diff --git a/lib/ssl.c b/lib/ssl.c index 7bebacfc..520fbefd 100644 --- a/lib/ssl.c +++ b/lib/ssl.c @@ -445,6 +445,11 @@ lws_server_socket_service_ssl(struct libwebsocket_context *context, switch (wsi->mode) { case LWS_CONNMODE_SERVER_LISTENER: + if (!new_wsi) { + lwsl_err("no new_wsi\n"); + return 0; + } + new_wsi->ssl = SSL_new(context->ssl_ctx); if (new_wsi->ssl == NULL) { lwsl_err("SSL_new failed: %s\n",