From fbaa7b9bcf0b3cfe1f086e72c12214db477cebdd Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Wed, 8 Mar 2023 01:17:34 +0100 Subject: server.c: Fix wrong size for memcpy(3) --- server.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/server.c b/server.c index 911127d..40be54e 100644 --- a/server.c +++ b/server.c @@ -48,17 +48,18 @@ int server_client_close(struct server *const s, struct server_client *const c) if (c == ref) { + const size_t n = s->n - 1; + if ((ret = close(c->fd))) { fprintf(stderr, "%s: close(2): %s\n", __func__, strerror(errno)); return -1; } - else if (s->n - 1) + else if (n) { - memcpy(ref, ref + 1, s->n - i); + memcpy(ref, ref + 1, (s->n - i - 1) * sizeof *ref); - const size_t n = s->n - 1; struct server_client *const c = realloc(s->c, n * sizeof *s->c); if (!c) @@ -76,7 +77,7 @@ int server_client_close(struct server *const s, struct server_client *const c) s->c = NULL; } - s->n--; + s->n = n; break; } } -- cgit v1.2.3