[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[hurd] 03/15: console-client: fix binary search
From: |
Samuel Thibault |
Subject: |
[hurd] 03/15: console-client: fix binary search |
Date: |
Sun, 05 Jul 2015 00:41:59 +0000 |
This is an automated email from the git hooks/post-receive script.
sthibault pushed a commit to branch upstream
in repository hurd.
commit 7410d78ed496c66a6c1d806360d1f83aa3321c01
Author: Justus Winter <address@hidden>
Date: Sat May 23 10:51:05 2015 +0200
console-client: fix binary search
Previously, the binary search through the keysym map was incorrectly
implemented. This resulted in infinite loops (thanks to the compilers
tail call optimization) or crashes (if the stack space was exhausted).
* console-client/xkb/kstoucs.c (find_ucs): Fix binary search.
---
console-client/xkb/kstoucs.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/console-client/xkb/kstoucs.c b/console-client/xkb/kstoucs.c
index 81e71b9..8471e94 100644
--- a/console-client/xkb/kstoucs.c
+++ b/console-client/xkb/kstoucs.c
@@ -13,8 +13,10 @@ find_ucs (int keysym, struct ksmap *first, struct ksmap
*last)
if (middle->keysym == keysym)
return middle->ucs; /* base case: needle found. */
- else if (middle == first && middle == last)
- return 0; /* base case: empty search space. */
+ else if (first == last /* empty search space */
+ || keysym < first->keysym /* lookup failure */
+ || keysym > last->keysym) /* lookup failure */
+ return 0;
/* recursive cases: halve search space. */
else if (middle->keysym < keysym)
return find_ucs (keysym, middle+1, last);
--
Alioth's /usr/local/bin/git-commit-notice on
/srv/git.debian.org/git/pkg-hurd/hurd.git
- [hurd] branch upstream updated (eef94c4 -> 3dc2076), Samuel Thibault, 2015/07/04
- [hurd] 01/15: console-client: fix build with -O0, Samuel Thibault, 2015/07/04
- [hurd] 02/15: console-client: avoid nested function, Samuel Thibault, 2015/07/04
- [hurd] 09/15: libdiskfs: do not print a message on ENOMEM, Samuel Thibault, 2015/07/04
- [hurd] 15/15: Merge remote-tracking branch 'upstream/master' into upstream, Samuel Thibault, 2015/07/04
- [hurd] 08/15: Check AWK usability when XKB is enabled, Samuel Thibault, 2015/07/04
- [hurd] 07/15: console-client: Fix lower range of binary search, Samuel Thibault, 2015/07/04
- [hurd] 04/15: utils/rpctrace: fix build with -O0, Samuel Thibault, 2015/07/04
- [hurd] 06/15: console-client: assert precondition, Samuel Thibault, 2015/07/04
- [hurd] 05/15: utils/vmstat: fix integer overflow, Samuel Thibault, 2015/07/04
- [hurd] 03/15: console-client: fix binary search,
Samuel Thibault <=
- [hurd] 11/15: Cope with scripts which chmod -x directories, Samuel Thibault, 2015/07/04
- [hurd] 10/15: Fix ps -o %r infinite loop, Samuel Thibault, 2015/07/04
- [hurd] 14/15: Do not keep mutex locked while waiting for authenticate loop, Samuel Thibault, 2015/07/04
- [hurd] 13/15: utils/rpcscan: new utility, Samuel Thibault, 2015/07/04
- [hurd] 12/15: utils: split-off the message id parsing, Samuel Thibault, 2015/07/04