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 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 .