From 44d0fd435a4eaf45e252b4f00409152a6d599dfc Mon Sep 17 00:00:00 2001 From: Egbert Eich Date: Tue, 24 Nov 2015 17:37:36 +0100 Subject: [PATCH] kdrive/UnregisterFd: Fix off by one The number of FDs has been decremented already, therefore the number contained the index of the top one that is to me moved down. This problem was introduced by: commit 1110b71e360195aab040d835b54540ab558638c5 Author: Chris Clayton kdrive: fix build error on gcc 4.8 for out-of-bounds array access The reason for the warning was likely a confused compiler. Hoping to reduce the confusion by moving the decrement behind the end if the copy loop. Signed-off-by: Egbert Eich Reviewed-by: Peter Hutterer --- hw/kdrive/src/kinput.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c index 4bb9315f5..d5741f100 100644 --- a/hw/kdrive/src/kinput.c +++ b/hw/kdrive/src/kinput.c @@ -220,9 +220,9 @@ KdUnregisterFd(void *closure, int fd, Bool do_close) KdRemoveFd(kdInputFds[i].fd); if (do_close) close(kdInputFds[i].fd); - kdNumInputFds--; for (j = i; j < (kdNumInputFds - 1); j++) kdInputFds[j] = kdInputFds[j + 1]; + kdNumInputFds--; break; } }