DragonFlyBSD Kernel Audit
DF-1949 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/drm/amd/display/dc/basics/fixpt31_32.c b/sys/dev/drm/amd/display/dc/basics/fixpt31_32.c
--- a/sys/dev/drm/amd/display/dc/basics/fixpt31_32.c
+++ b/sys/dev/drm/amd/display/dc/basics/fixpt31_32.c
@@ -47,7 +47,13 @@
 {
 	unsigned long long result;
 
-	ASSERT(divisor);
+	if (divisor == 0) {
+		/* Production ASSERT() is a no-op in many builds;
+		 * an actual divide-by-zero here would panic. */
+		if (remainder)
+			*remainder = 0;
+		return 0;
+	}
 
 	result = div64_u64_rem(dividend, divisor, remainder);