diff options
author | Jakob Kaivo <jkk@ung.org> | 2020-08-12 13:55:42 -0400 |
---|---|---|
committer | Jakob Kaivo <jkk@ung.org> | 2020-08-12 13:55:42 -0400 |
commit | 15013bb0894c71cd068be251f39ddf87071b633f (patch) | |
tree | 5b48c0e220b3e437eb3d3a139368532db0791ce5 /src/string/memcmp.c | |
parent | c3f7489af9a3a93be968364c8cbb7bf600643605 (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.c | 8 |
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; } /*** |