DragonFlyBSD Kernel Audit
DF-1987 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/drm/radeon/radeon_sa.c b/sys/dev/drm/radeon/radeon_sa.c
index 1111111..2222222 100644
--- a/sys/dev/drm/radeon/radeon_sa.c
+++ b/sys/dev/drm/radeon/radeon_sa.c
@@ -318,8 +318,12 @@
 	unsigned tries[RADEON_NUM_RINGS];
 	int i, r;
 
-	BUG_ON(align > sa_manager->align);
-	BUG_ON(size > sa_manager->size);
+	if (align > sa_manager->align || size > sa_manager->size) {
+		DRM_ERROR("radeon_sa_bo_new: invalid align=%u or size=%u "
+			    "(sa_manager align=%u size=%u)\n", align, size,
+			    sa_manager->align, sa_manager->size);
+		return -EINVAL;
+	}
 
 	*sa_bo = kmalloc(sizeof(struct radeon_sa_bo), M_DRM, GFP_KERNEL);
 	if ((*sa_bo) == NULL) {