From: Gargi Sharma Date: Wed, 22 Feb 2017 15:38:21 +0000 (+0530) Subject: staging: greybus: loopback_test: fix device-name leak X-Git-Tag: v4.12-rc1~84^2~915 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=fea3860d7d69b0a82e0b96617258ffaf0ff250d4;p=linux.git 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 --- diff --git a/drivers/staging/greybus/tools/loopback_test.c b/drivers/staging/greybus/tools/loopback_test.c index 18d7a3d1f3c7..1c01833d1f4e 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;