summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzabolcs Nagy <nsz@port70.net>2017-03-05 23:03:35 +0100
committerRich Felker <dalias@aerifal.cx>2017-03-05 20:02:31 -0500
commit827c4e6fbe46142049ef3d8bcb8f35951712797d (patch)
tree5f7a4ecc03a37de5d4feb656c0344eabeddd2d80
parent0a4a16d11cc263c3f32325f985b9ed94b04af79f (diff)
downloadmusl-827c4e6fbe46142049ef3d8bcb8f35951712797d.tar.gz
musl-827c4e6fbe46142049ef3d8bcb8f35951712797d.tar.bz2
musl-827c4e6fbe46142049ef3d8bcb8f35951712797d.tar.xz
musl-827c4e6fbe46142049ef3d8bcb8f35951712797d.zip
fix lsearch and lfind to pass key as first arg to the compar callback
this is not a conformance issue as posix does not specify the argument order, but the order is specified for bsearch and some systems document the order for lsearch consistently (openbsd). since there were two indpendent reports of this issue it's better to use the more widely expected argument order.
-rw-r--r--src/search/lsearch.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/search/lsearch.c b/src/search/lsearch.c
index 63f31922..5eb5cc2b 100644
--- a/src/search/lsearch.c
+++ b/src/search/lsearch.c
@@ -9,7 +9,7 @@ void *lsearch(const void *key, void *base, size_t *nelp, size_t width,
size_t i;
for (i = 0; i < n; i++)
- if (compar(p[i], key) == 0)
+ if (compar(key, p[i]) == 0)
return p[i];
*nelp = n+1;
return memcpy(p[n], key, width);
@@ -23,7 +23,7 @@ void *lfind(const void *key, const void *base, size_t *nelp,
size_t i;
for (i = 0; i < n; i++)
- if (compar(p[i], key) == 0)
+ if (compar(key, p[i]) == 0)
return p[i];
return 0;
}