server.c: Fix wrong size for memcpy(3)

This commit is contained in:
Xavier Del Campo Romero 2023-03-08 01:17:34 +01:00
parent 76664d2006
commit 5e100ff3c1
Signed by: xavi
GPG Key ID: 84FF3612A9BF43F2
1 changed files with 5 additions and 4 deletions

View File

@ -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;
}
}