diff options
Diffstat (limited to 'libc')
| -rw-r--r-- | libc/stdlib/bsearch.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libc/stdlib/bsearch.c b/libc/stdlib/bsearch.c index 8193d27..7eb6325 100644 --- a/libc/stdlib/bsearch.c +++ b/libc/stdlib/bsearch.c @@ -56,11 +56,11 @@ bsearch(const void *key, const void *base0, size_t nmemb, size_t size, for (lim = nmemb; lim != 0; lim >>= 1) { p = base + (lim >> 1) * size; cmp = (*compar)(key, p); - if (cmp == 0) - return ((void *)p); if (cmp > 0) { /* key > p: move right */ base = (char *)p + size; lim--; + } else if (cmp == 0) { + return ((void *)p); } /* else move left */ } return (NULL); |
