diff --git a/src/control_socket.cpp b/src/control_socket.cpp index 856ac9d43..e8a6d9d4d 100644 --- a/src/control_socket.cpp +++ b/src/control_socket.cpp @@ -595,12 +595,13 @@ static void * control_thread(void *args) if(ret <= 0) { struct client *next; CLOSESOCKET(cur->fd); - if(cur->prev) { + if (cur->prev) { cur->prev->next = cur->next; - cur->next->prev = cur->prev; } else { clients = cur->next; - clients->prev = NULL; + } + if (cur->next) { + cur->next->prev = cur->prev; } next = cur->next; free(cur);