diff options
author | 2017-02-22 21:08:21 +0530 | |
---|---|---|
committer | 2017-03-06 09:17:01 +0100 | |
commit | fea3860d7d69b0a82e0b96617258ffaf0ff250d4 (patch) | |
tree | 426f0727625562d975dce59ce4ad236026818883 /drivers/staging/greybus | |
parent | staging: rtl8712: Moved logical OR operator to previous line. (diff) | |
download | linux-fea3860d7d69b0a82e0b96617258ffaf0ff250d4.tar.gz linux-fea3860d7d69b0a82e0b96617258ffaf0ff250d4.tar.bz2 linux-fea3860d7d69b0a82e0b96617258ffaf0ff250d4.zip |
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 <gs051095@gmail.com>
Reviewed by: Johan Hovold <johan@kernel.org>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/greybus')
-rw-r--r-- | drivers/staging/greybus/tools/loopback_test.c | 2 |
1 files changed, 1 insertions, 1 deletions
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; |