summaryrefslogtreecommitdiff
path: root/src/string/memcmp.c
diff options
context:
space:
mode:
authorJakob Kaivo <jkk@ung.org>2020-08-12 13:55:42 -0400
committerJakob Kaivo <jkk@ung.org>2020-08-12 13:55:42 -0400
commit15013bb0894c71cd068be251f39ddf87071b633f (patch)
tree5b48c0e220b3e437eb3d3a139368532db0791ce5 /src/string/memcmp.c
parentc3f7489af9a3a93be968364c8cbb7bf600643605 (diff)
correctly return 0 if all bytes up to n are the same
Diffstat (limited to 'src/string/memcmp.c')
-rw-r--r--src/string/memcmp.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/string/memcmp.c b/src/string/memcmp.c
index f0c1e2da..eaf4cf40 100644
--- a/src/string/memcmp.c
+++ b/src/string/memcmp.c
@@ -4,8 +4,8 @@
/** compare memory regions **/
int memcmp(const void *s1, const void *s2, size_t n)
{
- unsigned char *p = (unsigned char*)s1;
- unsigned char *q = (unsigned char*)s2;
+ unsigned char *p = (void*)s1;
+ unsigned char *q = (void*)s2;
size_t i = 0;
ASSERT_NONNULL(s1);
@@ -13,7 +13,7 @@ int memcmp(const void *s1, const void *s2, size_t n)
for (i = 0; i < n; i++) {
if (p[i] != q[i]) {
- break;
+ return p[i] - q[i];
}
}
@@ -22,7 +22,7 @@ int memcmp(const void *s1, const void *s2, size_t n)
RETURN(ZERO, ARGUMENT(s1) and ARGUMENT(s2) are equal);
RETURN(POSITIVE(), ARGUMENT(s1) is greater than ARGUMENT(s2));
*/
- return p[i] - q[i];
+ return 0;
}
/***