diff options
| author | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2023-03-08 01:17:34 +0100 |
|---|---|---|
| committer | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2023-07-20 23:52:52 +0200 |
| commit | fbaa7b9bcf0b3cfe1f086e72c12214db477cebdd (patch) | |
| tree | 66510830f593ded0bd9474c815dbaa69a228f5a9 | |
| parent | cc714d9006553f852f41954e2e9f55e7ee57accd (diff) | |
server.c: Fix wrong size for memcpy(3)
| -rw-r--r-- | server.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -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; } } |
