summaryrefslogtreecommitdiff
path: root/src/stdlib
diff options
context:
space:
mode:
authorJakob Kaivo <jkk@ung.org>2020-08-15 15:17:44 -0400
committerJakob Kaivo <jkk@ung.org>2020-08-15 15:17:44 -0400
commitf5b6b6ee21095e7adb6e8402d196715f9f791a87 (patch)
treeaa32d598ccbbf9c520bb23f578e607656f828623 /src/stdlib
parent2b265e993d7a43f5691cfa962f1baecabb83cd14 (diff)
do pointer arithmetic correctly
Diffstat (limited to 'src/stdlib')
-rw-r--r--src/stdlib/bsearch.c6
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 {