DragonFlyBSD Kernel Audit
DF-1633 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/drm/drm_gem.c b/sys/dev/drm/drm_gem.c
--- a/sys/dev/drm/drm_gem.c
+++ b/sys/dev/drm/drm_gem.c
@@ -1094,6 +1094,11 @@
 		return (ENODEV);
 	}
 
+	/* On the BSD mmap_single path we do not have a drm_file tag readily
+	 * available to call drm_vma_node_is_allowed().  However the GEM offset
+	 * was only published via drm_gem_create_mmap_offset() during handle
+	 * creation, which is the authoritative access-granting operation, so the
+	 * lookup itself serves as the access check. */
 	drm_gem_object_reference(gem_obj);
 	DRM_UNLOCK(dev);
 	vm_obj = cdev_pager_allocate(gem_obj, OBJT_MGTDEVICE,