icheck memory allocations, malloc+memset to calloc - thingmenu - A simple graphical menu launcher for X11. Err bitreich.org 70
hgit clone git://bitreich.org/thingmenu URL:git://bitreich.org/thingmenu bitreich.org 70
1Log /scm/thingmenu/log.gph bitreich.org 70
1Files /scm/thingmenu/files.gph bitreich.org 70
1Refs /scm/thingmenu/refs.gph bitreich.org 70
1Tags /scm/thingmenu/tag bitreich.org 70
1LICENSE /scm/thingmenu/file/LICENSE.gph bitreich.org 70
i--- Err bitreich.org 70
1commit bcb369a656d09ae2c2bb76d99622afc9ba33474b /scm/thingmenu/commit/bcb369a656d09ae2c2bb76d99622afc9ba33474b.gph bitreich.org 70
1parent a98965225be0bdad50d9711bbf0c54ef4d18888a /scm/thingmenu/commit/a98965225be0bdad50d9711bbf0c54ef4d18888a.gph bitreich.org 70
hAuthor: Hiltjo Posthuma <hiltjo@codemadness.org> URL:mailto:hiltjo@codemadness.org bitreich.org 70
iDate: Sat, 8 Dec 2018 13:36:42 +0100 Err bitreich.org 70
i Err bitreich.org 70
icheck memory allocations, malloc+memset to calloc Err bitreich.org 70
i Err bitreich.org 70
i- some consistency for strdup allocations. Err bitreich.org 70
i- free allocates strings at exit too. Err bitreich.org 70
i Err bitreich.org 70
iSigned-off-by: Christoph Lohmann <20h@r-36.net> Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M thingmenu.c | 33 ++++++++++++++++++------------- Err bitreich.org 70
i Err bitreich.org 70
i1 file changed, 19 insertions(+), 14 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/thingmenu.c b/thingmenu.c /scm/thingmenu/file/thingmenu.c.gph bitreich.org 70
i@@ -663,26 +663,28 @@ main(int argc, char *argv[]) Err bitreich.org 70
i i++; Err bitreich.org 70
i cmd = argv[i]; Err bitreich.org 70
i Err bitreich.org 70
i- entries = realloc(entries, sizeof(entries[0])*(++nentries)); Err bitreich.org 70
i- entries[nentries-1] = malloc(sizeof(*entries[0])); Err bitreich.org 70
i- memset(entries[nentries-1], 0, sizeof(*entries[0])); Err bitreich.org 70
i- Err bitreich.org 70
i- entries[nentries-1]->label = strdup(label); Err bitreich.org 70
i- if (entries[nentries-1]->label == NULL) Err bitreich.org 70
i+ if (!(entries = realloc(entries, sizeof(entries[0])*(++nentries)))) Err bitreich.org 70
i+ die("realloc returned NULL"); Err bitreich.org 70
i+ if (!(entries[nentries-1] = calloc(1, sizeof(*entries[0])))) Err bitreich.org 70
i+ die("calloc returned NULL"); Err bitreich.org 70
i+ if (!(entries[nentries-1]->label = strdup(label))) Err bitreich.org 70
i die("strdup returned NULL\n"); Err bitreich.org 70
i- entries[nentries-1]->cmd = strdup(cmd); Err bitreich.org 70
i- if (entries[nentries-1]->cmd == NULL) Err bitreich.org 70
i+ if (!(entries[nentries-1]->cmd = strdup(cmd))) Err bitreich.org 70
i die("strdup returned NULL\n"); Err bitreich.org 70
i+ entries[nentries-1]->forceexit = False; Err bitreich.org 70
i } Err bitreich.org 70
i if (nentries < 1) Err bitreich.org 70
i usage(); Err bitreich.org 70
i Err bitreich.org 70
i if (addexit) { Err bitreich.org 70
i- entries = realloc(entries, sizeof(entries[0])*(++nentries)); Err bitreich.org 70
i- entries[nentries-1] = malloc(sizeof(*entries[0])); Err bitreich.org 70
i- memset(entries[nentries-1], 0, sizeof(*entries[0])); Err bitreich.org 70
i- entries[nentries-1]->label = strdup("cancel"); Err bitreich.org 70
i- entries[nentries-1]->cmd = "exit"; Err bitreich.org 70
i+ if (!(entries = realloc(entries, sizeof(entries[0])*(++nentries)))) Err bitreich.org 70
i+ die("realloc returned NULL"); Err bitreich.org 70
i+ if (!(entries[nentries-1] = calloc(1, sizeof(*entries[0])))) Err bitreich.org 70
i+ die("calloc returned NULL"); Err bitreich.org 70
i+ if (!(entries[nentries-1]->label = strdup("cancel"))) Err bitreich.org 70
i+ die("strdup returned NULL\n"); Err bitreich.org 70
i+ if (!(entries[nentries-1]->cmd = strdup("exit"))) Err bitreich.org 70
i+ die("strdup returned NULL\n"); Err bitreich.org 70
i entries[nentries-1]->forceexit = True; Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i@@ -696,8 +698,11 @@ main(int argc, char *argv[]) Err bitreich.org 70
i cleanup(); Err bitreich.org 70
i XCloseDisplay(dpy); Err bitreich.org 70
i Err bitreich.org 70
i- for (i = 0; i < nentries; i++) Err bitreich.org 70
i+ for (i = 0; i < nentries; i++) { Err bitreich.org 70
i+ free(entries[i]->label); Err bitreich.org 70
i+ free(entries[i]->cmd); Err bitreich.org 70
i free(entries[i]); Err bitreich.org 70
i+ } Err bitreich.org 70
i free(entries); Err bitreich.org 70
i Err bitreich.org 70
i return 0; Err bitreich.org 70
.
Response:
text/plain