DragonFlyBSD Kernel Audit
DF-0305 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/netinet/ip_carp.c b/sys/netinet/ip_carp.c
--- a/sys/netinet/ip_carp.c
+++ b/sys/netinet/ip_carp.c
@@ -578,7 +578,13 @@
 	unsigned char md2[20];
 
 	carp_hmac_generate(sc, counter, md2);
-	return (bcmp(md, md2, sizeof(md2)));
+	{
+		unsigned int _d = 0;
+		int _i;
+		for (_i = 0; _i < (int)sizeof(md2); _i++)
+			_d |= (unsigned char)md[_i] ^ (unsigned char)md2[_i];
+		return (_d != 0);
+	}
 }
 
 static void