From: Laurent Mazet Date: Tue, 14 Feb 2023 12:57:51 +0000 (+0100) Subject: fix a segfault on del X-Git-Tag: v1.1~3^2~7 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=5d50462b1e3cc5687f31fad0d295b31fb9934c15;p=calc.git fix a segfault on del --- diff --git a/program.c b/program.c index e8cd2d1..ef6d833 100644 --- a/program.c +++ b/program.c @@ -167,13 +167,10 @@ void del (int id) free_ws (programs[n]); /* remove entry */ - workspace_t **tmp = (workspace_t **) callocordie (--nb_programs, sizeof (workspace_t *)); - if (n != 0) { - memcpy (tmp, programs, (n - 1) * sizeof (workspace_t)); - } - if (n != nb_programs) { - memcpy (tmp + n - 1, programs + n, (nb_programs - n) * sizeof (workspace_t)); - } + workspace_t **tmp = (workspace_t **) callocordie (nb_programs - 1, sizeof (workspace_t *)); + memcpy (tmp, programs, n * sizeof (workspace_t *)); + memcpy (tmp + n, programs + n + 1, (nb_programs - n - 1) * sizeof (workspace_t *)); + nb_programs--; free (programs); programs = tmp; }