⬢ DragonFlyBSD Kernel Audit
DF-5134 / fix.diff
← back to finding ↓ download raw
--- sys/dev/drm/linux_dma-buf.c.orig
+++ sys/dev/drm/linux_dma-buf.c
@@ -111,6 +111,7 @@
 	.fo_kqfilter	= badfo_kqfilter,
 	.fo_stat	= dmabuf_stat,
 	.fo_close	= dmabuf_close,
+	.fo_shutdown	= badfo_shutdown,
 	.fo_seek	= dmabuf_seek,
 };
 
@@ -161,6 +162,8 @@
 		return -error;
 
 	fsetfd(curproc->p_fd, dmabuf->file, fd);
+	fdrop(dmabuf->file);	/* the fd owns the caller's reference now,
+				 * matching Linux fd_install() semantics */
 
 	return fd;
 }