From: sayli karnik Date: Mon, 20 Feb 2017 17:10:28 +0000 (+0530) Subject: staging: greybus: loopback_test: Fix open error path X-Git-Tag: v4.12-rc1~84^2~914 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=6796cd84610a56beb7d3fa2818989727e4f26550;p=karo-tx-linux.git staging: greybus: loopback_test: Fix open error path Change array index from the loop bound variable to loop index. If a poll file fails to open for any intermediate device, all poll files with fds of devices from 0 upto that device must be closed in the open_poll_files() function. The current code only closes the poll file with the most recent fd allocated, and at times tries to close the same file multiple times. Detected by coccinelle: @@ expression arr,ex1,ex2; @@ for(ex1 = 0; ex1 < ex2; ex1++) { <... arr[ - ex2 + ex1 ] ...> } Signed-off-by: sayli karnik Reviewed-by: Johan Hovold 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 1c01833d1f4e..f1edd4bc411e 100644 --- a/drivers/staging/greybus/tools/loopback_test.c +++ b/drivers/staging/greybus/tools/loopback_test.c @@ -674,7 +674,7 @@ static int open_poll_files(struct loopback_test *t) err: for (i = 0; i < fds_idx; i++) - close(t->fds[fds_idx].fd); + close(t->fds[i].fd); return -1; }