summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNRK <nrk@disroot.org>2022-03-25 22:51:09 +0100
committerHiltjo Posthuma <hiltjo@codemadness.org>2022-03-25 22:53:50 +0100
commitb43ec0577f2ad8ad33a0b893fe5360d966036786 (patch)
tree884cebe5dc68242733e9a8e916fc16932e695793
parent22511c41d55a38a770541ae617a09383d5e6ad1c (diff)
downloaddmenu-b43ec0577f2ad8ad33a0b893fe5360d966036786.tar.gz
free all allocated items, use %zu for size_t
`items` itself is not checked for NULL as calling free on NULL is defined to be a no-op.
-rw-r--r--dmenu.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/dmenu.c b/dmenu.c
index d989d39..085dc29 100644
--- a/dmenu.c
+++ b/dmenu.c
@@ -104,6 +104,9 @@ cleanup(void)
XUngrabKey(dpy, AnyKey, AnyModifier, root);
for (i = 0; i < SchemeLast; i++)
free(scheme[i]);
+ for (i = 0; items && items[i].text; ++i)
+ free(items[i].text);
+ free(items);
drw_free(drw);
XSync(dpy, False);
XCloseDisplay(dpy);
@@ -239,7 +242,7 @@ match(void)
/* separate input text into tokens to be matched individually */
for (s = strtok(buf, " "); s; tokv[tokc - 1] = s, s = strtok(NULL, " "))
if (++tokc > tokn && !(tokv = realloc(tokv, ++tokn * sizeof *tokv)))
- die("cannot realloc %u bytes:", tokn * sizeof *tokv);
+ die("cannot realloc %zu bytes:", tokn * sizeof *tokv);
len = tokc ? strlen(tokv[0]) : 0;
matches = lprefix = lsubstr = matchend = prefixend = substrend = NULL;
@@ -553,11 +556,11 @@ readstdin(void)
for (i = 0; fgets(buf, sizeof buf, stdin); i++) {
if (i + 1 >= size / sizeof *items)
if (!(items = realloc(items, (size += BUFSIZ))))
- die("cannot realloc %u bytes:", size);
+ die("cannot realloc %zu bytes:", size);
if ((p = strchr(buf, '\n')))
*p = '\0';
if (!(items[i].text = strdup(buf)))
- die("cannot strdup %u bytes:", strlen(buf) + 1);
+ die("cannot strdup %zu bytes:", strlen(buf) + 1);
items[i].out = 0;
}
if (items)