From d4302734d77585e553a66150ab60f30cbc3fd730 Mon Sep 17 00:00:00 2001 From: Andy Green Date: Mon, 28 Feb 2011 07:45:29 +0000 Subject: [PATCH] fix null protocol dereference when closing session Thanks to Christopher Baker for pointing out that when we close a session, if the close is coming before a protocol was negotiated for the connection or when the protocol was otherwise left at NULL, we'll blow a segfault. This implements his proposed fix. Reported-by: Christopher Baker Signed-off-by: Andy Green --- lib/libwebsockets.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c index b3e6023e..a857beac 100644 --- a/lib/libwebsockets.c +++ b/lib/libwebsockets.c @@ -187,7 +187,8 @@ libwebsocket_close_and_free_session(struct libwebsocket_context *this, /* tell the user it's all over for this guy */ - if (wsi->protocol->callback && old_state == WSI_STATE_ESTABLISHED) + if (wsi->protocol && wsi->protocol->callback && + old_state == WSI_STATE_ESTABLISHED) wsi->protocol->callback(this, wsi, LWS_CALLBACK_CLOSED, wsi->user_space, NULL, 0);