diff --git a/dmenu.c b/dmenu.c index e7be8af..e786d7a 100644 --- a/dmenu.c +++ b/dmenu.c @@ -554,7 +554,7 @@ readstdin(void) ssize_t len; /* read each line from stdin and add it to the item list */ - for (i = 0; (len = getline(&line, &junk, stdin)) != -1; i++, line = NULL) { + for (i = 0; (len = getline(&line, &junk, stdin)) != -1; i++) { if (i + 1 >= size / sizeof *items) if (!(items = realloc(items, (size += BUFSIZ)))) die("cannot realloc %zu bytes:", size); @@ -562,7 +562,9 @@ readstdin(void) line[len - 1] = '\0'; items[i].text = line; items[i].out = 0; + line = NULL; } + free(line); if (items) items[i].text = NULL; lines = MIN(lines, i);