DragonFlyBSD Kernel Audit
DF-1969 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/drm/radeon/radeon_fb.c b/sys/dev/drm/radeon/radeon_fb.c
--- a/sys/dev/drm/radeon/radeon_fb.c
+++ b/sys/dev/drm/radeon/radeon_fb.c
@@ -322,13 +322,15 @@
 
 out:
 	if (rbo) {
-
+		radeon_bo_unreserve(rbo);
 	}
-	if (fb && ret) {
-		drm_gem_object_put_unlocked(gobj);
-		drm_framebuffer_unregister_private(fb);
-		drm_framebuffer_cleanup(fb);
-		kfree(fb);
+	if (ret) {
+		if (gobj)
+			drm_gem_object_put_unlocked(gobj);
+		if (fb) {
+			drm_framebuffer_unregister_private(fb);
+			drm_framebuffer_cleanup(fb);
+		}
 	}
 	return ret;
 }