~sircmpwn/gmnisrv

b9a92193e96bbe621ebc8430d8308d45a5b86cef — Eyal Sawady 2 years ago 53e4ce4
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.
1 files changed, 1 insertions(+), 1 deletions(-)

M src/server.c
M src/server.c => src/server.c +1 -1
@@ 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));