The code copied from gpiofind didn't free the memory from scandir. Signed-off-by: Joel Stanley <joel@xxxxxxxxx> --- tools/tools-common.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/tools-common.c b/tools/tools-common.c index 0dc3d52668d7..c83e68a2c1e4 100644 --- a/tools/tools-common.c +++ b/tools/tools-common.c @@ -190,12 +190,17 @@ struct gpiod_chip *chip_by_line_name(const char *name) die_perror("unable to open %s", entries[i]->d_name); } + free(entries[i]); offset = gpiod_chip_find_line(chip, name); - if (offset >= 0) + if (offset >= 0) { + free(entries); return chip; + } + gpiod_chip_unref(chip); } + free(entries); return NULL; } -- 2.34.1