diff options
author | Jakob Kaivo <jkk@ung.org> | 2020-08-15 15:17:44 -0400 |
---|---|---|
committer | Jakob Kaivo <jkk@ung.org> | 2020-08-15 15:17:44 -0400 |
commit | f5b6b6ee21095e7adb6e8402d196715f9f791a87 (patch) | |
tree | aa32d598ccbbf9c520bb23f578e607656f828623 /src/stdlib | |
parent | 2b265e993d7a43f5691cfa962f1baecabb83cd14 (diff) |
do pointer arithmetic correctly
Diffstat (limited to 'src/stdlib')
-rw-r--r-- | src/stdlib/bsearch.c | 6 |
1 files changed, 3 insertions, 3 deletions
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 { |