From b9a92193e96bbe621ebc8430d8308d45a5b86cef Mon Sep 17 00:00:00 2001 From: Eyal Sawady Date: Sun, 16 May 2021 15:53:47 -0400 Subject: [PATCH] disconnect_client: fix index calculation This was sometimes causing a gmnisrv_client to be overwritten by the deinitialized client, which occasionally lead to a segfault when we later tried to use it. --- src/server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server.c b/src/server.c index dac772b..e199f6f 100644 --- a/src/server.c +++ b/src/server.c @@ -200,7 +200,7 @@ disconnect_client(struct gmnisrv_server *server, struct gmnisrv_client *client) free(client->path); client->path = NULL; - size_t index = (client - server->clients) / sizeof(struct gmnisrv_client); + size_t index = client - server->clients; memmove(&server->clients[index], &server->clients[index + 1], (server->clientsz - (index + 1)) * sizeof(struct gmnisrv_client));