From fea3860d7d69b0a82e0b96617258ffaf0ff250d4 Mon Sep 17 00:00:00 2001 From: Gargi Sharma Date: Wed, 22 Feb 2017 21:08:21 +0530 Subject: [PATCH] staging: greybus: loopback_test: fix device-name leak All the device names were being always leaked. Also, illegal free was being called upon namelist[n] which was coincidentally NULL. The pointer to dirent structures must be individually freed before freeing the pointer array. Coccinelle Script: @@ expression arr,ex1,ex2; @@ for(ex1 = 0; ex1 < ex2; ex1++) { <... arr[ - ex2 + ex1 ] ...> } Signed-off-by: Gargi Sharma Reviewed by: Johan Hovold Acked-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman --- drivers/staging/greybus/tools/loopback_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/greybus/tools/loopback_test.c b/drivers/staging/greybus/tools/loopback_test.c index 18d7a3d..1c01833 100644 --- a/drivers/staging/greybus/tools/loopback_test.c +++ b/drivers/staging/greybus/tools/loopback_test.c @@ -636,7 +636,7 @@ int find_loopback_devices(struct loopback_test *t) ret = 0; done: for (i = 0; i < n; i++) - free(namelist[n]); + free(namelist[i]); free(namelist); baddir: return ret; -- 2.7.4