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-03-08 01:17:34 +0100 |
| commit | 5e100ff3c1907e12bbb88204019f0fd3e44a5247 (patch) | |
| tree | 1b9987f0278cdf05fbd28d1e7a3701d4c294f6c4 | |
| parent | 76664d2006f16f48f7ba3915a21e8a96acfdf18b (diff) | |
| download | slcl-5e100ff3c1907e12bbb88204019f0fd3e44a5247.tar.gz | |
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; } } |
