From f5b6b6ee21095e7adb6e8402d196715f9f791a87 Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Sat, 15 Aug 2020 15:17:44 -0400 Subject: do pointer arithmetic correctly --- src/stdlib/bsearch.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/stdlib') diff --git a/src/stdlib/bsearch.c b/src/stdlib/bsearch.c index d625599f..39de941e 100644 --- a/src/stdlib/bsearch.c +++ b/src/stdlib/bsearch.c @@ -8,12 +8,12 @@ void * bsearch(const void * key, const void * base, size_t nmemb, size_t size, i void *ret = NULL; size_t i = nmemb / 2; unsigned int trip = 1; - (void)size; + const char *addr = base; while (ret == NULL) { - int comp = compar(key, base + i); + int comp = compar(key, addr + (i * size)); if (comp == 0) { - return (void*)(base + i); + return (void*)(addr + (i * size)); } else if (comp > 0) { i -= (nmemb >> trip); } else { -- cgit v1.2.1