fix leak when getline fails
commit689d9bfcf6859e5ce85c296ff0f23b5c08b1fedc
authorNRK <nrk@disroot.org>
Sun, 30 Oct 2022 18:10:45 +0000 (31 00:10 +0600)
committerHiltjo Posthuma <hiltjo@codemadness.org>
Mon, 31 Oct 2022 10:40:35 +0000 (31 11:40 +0100)
treea1ca8529c6b4ea7f1be7fc39a86c450830d1f128
parente42c03663442f5fb2f66dd59cc5bfdc61c53192c
fix leak when getline fails

according to the getline(3) documentation, the calling code needs to
free the buffer even if getline fails.

dmenu currently doesn't do that which results in a small leak in case of
failure (e.g when piped /dev/null)

$ ./dmenu < /dev/null
==8201==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 120 byte(s) in 1 object(s) allocated from:
    #0 0x7f6bf5785ef7 in malloc
    #1 0x7f6bf538ec84 in __getdelim
    #2 0x405d0c in readstdin dmenu.c:557

moving `line = NULL` inside the loop body wasn't strictly necessary, but
IMO it makes it more apparent that `line` is getting cleared to NULL
after each successful iteration.
dmenu.c