diff options
| author | Tom Lebreux <me@tomlebreux.com> | 2020-11-07 07:56:48 -0500 |
|---|---|---|
| committer | Drew DeVault <sir@cmpwn.com> | 2020-11-08 09:37:59 -0500 |
| commit | 7aedbed7740c3ee5d60705a2ad74cdc760e60f2e (patch) | |
| tree | f9d868c86fe8e5fc38db56528956bb451871a362 /src/server.c | |
| parent | d20caf389bd6cd8e6d8daaeb6d51a022fc643292 (diff) | |
| download | gmnisrv-7aedbed7740c3ee5d60705a2ad74cdc760e60f2e.tar.gz gmnisrv-7aedbed7740c3ee5d60705a2ad74cdc760e60f2e.tar.xz gmnisrv-7aedbed7740c3ee5d60705a2ad74cdc760e60f2e.zip | |
Don't memmove one past clients
Diffstat (limited to 'src/server.c')
| -rw-r--r-- | src/server.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/server.c b/src/server.c index 9ce304f..4a38eaa 100644 --- a/src/server.c +++ b/src/server.c @@ -197,7 +197,9 @@ disconnect_client(struct gmnisrv_server *server, struct gmnisrv_client *client) free(client->path); size_t index = (client - server->clients) / sizeof(struct gmnisrv_client); - memmove(client, &client[1], &server->clients[server->clientsz] - client); + memmove(&server->clients[index], + &server->clients[index + 1], + (server->clientsz - (index + 1)) * sizeof(struct gmnisrv_client)); memmove(&server->fds[server->nlisten + index], &server->fds[server->nlisten + index + 1], (server->fdsz - (server->nlisten + index + 1)) * sizeof(struct pollfd)); |
