summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEgbert Eich <eich@suse.de>2015-11-24 17:37:36 +0100
committerAdam Jackson <ajax@redhat.com>2015-11-30 11:48:08 -0500
commit44d0fd435a4eaf45e252b4f00409152a6d599dfc (patch)
tree0562fc7cb7fae4681be05517bc68af2949fe0ee5
parenteb36924ead40564325aa56d54a973dc8fb4eae83 (diff)
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 <chris2553@googlemail.com> 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 <eich@suse.de> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--hw/kdrive/src/kinput.c2
1 files changed, 1 insertions, 1 deletions
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;
}
}