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 karniksayli1995@gmail.com --- v2: Made the subject and changelog more concise
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..2ee9a22 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; }