From abd99febcf09df85b9ec9a57480a30f8eded75a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Fri, 25 Aug 2017 18:16:07 +0300 Subject: [PATCH] Fix possible crash on `show sessions` The function that printed all sessions assumed that all client DCBs had valid, non-dummy sessions. It is possible that a client with a dummy session is the list. These sessions should be ignored. --- server/core/session.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/core/session.c b/server/core/session.c index e7da16789..87e72c1a7 100644 --- a/server/core/session.c +++ b/server/core/session.c @@ -426,7 +426,8 @@ printAllSessions() /** Callback for dprintAllSessions */ bool dprintAllSessions_cb(DCB *dcb, void *data) { - if (dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER) + if (dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER && + dcb->session->state != SESSION_STATE_DUMMY) { DCB *out_dcb = (DCB*)data; dprintSession(out_dcb, dcb->session);