From 4da9f74d24573b56507ea7600c52acc0b0042415 Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Wed, 21 Feb 2018 11:10:26 +0100 Subject: [PATCH] util: replace assert for missing MD5 with fatal log message Apparently, on some systems the MD5 function is missing with the NSS support (freebl3). Instead of failing an assertion, exit with a log message. --- util.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/util.c b/util.c index 95c27c0..4b3e455 100644 --- a/util.c +++ b/util.c @@ -366,16 +366,14 @@ UTI_IPToRefid(IPAddr *ip) case IPADDR_INET4: return ip->addr.in4; case IPADDR_INET6: - if (MD5_hash < 0) { + if (MD5_hash < 0) MD5_hash = HSH_GetHashId("MD5"); - assert(MD5_hash >= 0); - } - if (HSH_Hash(MD5_hash, (unsigned const char *)ip->addr.in6, sizeof - (ip->addr.in6), NULL, 0, buf, 16) != 16) { - assert(0); - return 0; - }; + if (MD5_hash < 0 || + HSH_Hash(MD5_hash, (const unsigned char *)ip->addr.in6, sizeof (ip->addr.in6), + NULL, 0, buf, sizeof (buf)) != sizeof (buf)) + LOG_FATAL("Could not get MD5"); + return (uint32_t)buf[0] << 24 | buf[1] << 16 | buf[2] << 8 | buf[3]; } return 0;