free all allocated items, use %zu for size_t - dmenu - dynamic menu | |
git clone git://git.suckless.org/dmenu | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit b43ec0577f2ad8ad33a0b893fe5360d966036786 | |
parent 22511c41d55a38a770541ae617a09383d5e6ad1c | |
Author: NRK <[email protected]> | |
Date: Fri, 25 Mar 2022 22:51:09 +0100 | |
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. | |
Diffstat: | |
M dmenu.c | 9 ++++++--- | |
1 file changed, 6 insertions(+), 3 deletions(-) | |
--- | |
diff --git 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 *t… | |
- 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) |