aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/sort
diff options
context:
space:
mode:
authorConrad Meyer <cem@FreeBSD.org>2019-04-04 23:32:27 +0000
committerConrad Meyer <cem@FreeBSD.org>2019-04-04 23:32:27 +0000
commitfff4eaebbff9cf9084e0cb4634fb9170e3cfb252 (patch)
tree2e88390777de5a4e55c0e4ead9a72cb4a40777ba /usr.bin/sort
parent02c8dd7d72a4f1b274a3f1efe94142b6319f2887 (diff)
Notes
Diffstat (limited to 'usr.bin/sort')
-rw-r--r--usr.bin/sort/coll.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/usr.bin/sort/coll.c b/usr.bin/sort/coll.c
index 5b2dc07ec28ee..979ba0d2c0ea7 100644
--- a/usr.bin/sort/coll.c
+++ b/usr.bin/sort/coll.c
@@ -990,8 +990,7 @@ randomcoll(struct key_value *kv1, struct key_value *kv2,
{
struct bwstring *s1, *s2;
MD5_CTX ctx1, ctx2;
- char *b1, *b2;
- int cmp_res;
+ unsigned char hash1[MD5_DIGEST_LENGTH], hash2[MD5_DIGEST_LENGTH];
s1 = kv1->k;
s2 = kv2->k;
@@ -1004,24 +1003,16 @@ randomcoll(struct key_value *kv1, struct key_value *kv2,
if (s1 == s2)
return (0);
- memcpy(&ctx1,&md5_ctx,sizeof(MD5_CTX));
- memcpy(&ctx2,&md5_ctx,sizeof(MD5_CTX));
+ memcpy(&ctx1, &md5_ctx, sizeof(MD5_CTX));
+ memcpy(&ctx2, &md5_ctx, sizeof(MD5_CTX));
MD5Update(&ctx1, bwsrawdata(s1), bwsrawlen(s1));
MD5Update(&ctx2, bwsrawdata(s2), bwsrawlen(s2));
- b1 = MD5End(&ctx1, NULL);
- b2 = MD5End(&ctx2, NULL);
- if (b1 == NULL || b2 == NULL)
- err(2, "MD5End");
- cmp_res = strcmp(b1,b2);
- sort_free(b1);
- sort_free(b2);
+ MD5Final(hash1, &ctx1);
+ MD5Final(hash2, &ctx2);
- if (!cmp_res)
- cmp_res = bwscoll(s1, s2, 0);
-
- return (cmp_res);
+ return (memcmp(hash1, hash2, sizeof(hash1)));
}
/*