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",