DragonFlyBSD Kernel Audit
DF-0815 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/vfs/hammer2/hammer2_ioctl.c b/sys/vfs/hammer2/hammer2_ioctl.c
--- a/sys/vfs/hammer2/hammer2_ioctl.c
+++ b/sys/vfs/hammer2/hammer2_ioctl.c
@@ -142,17 +142,20 @@
 			error = hammer2_ioctl_inode_set(ip, data);
 		break;
 	case HAMMER2IOC_BULKFREE_SCAN:
-		error = hammer2_ioctl_bulkfree_scan(ip, data);
+		if (error == 0)
+			error = hammer2_ioctl_bulkfree_scan(ip, data);
 		break;
 	case HAMMER2IOC_BULKFREE_ASYNC:
-		error = hammer2_ioctl_bulkfree_scan(ip, NULL);
+		if (error == 0)
+			error = hammer2_ioctl_bulkfree_scan(ip, NULL);
 		break;
 	case HAMMER2IOC_DESTROY:
 		if (error == 0)
 			error = hammer2_ioctl_destroy(ip, data);
 		break;
 	case HAMMER2IOC_DEBUG_DUMP:
-		error = hammer2_ioctl_debug_dump(ip, *(u_int *)data);
+		if (error == 0)
+			error = hammer2_ioctl_debug_dump(ip, *(u_int *)data);
 		break;
 	case HAMMER2IOC_EMERG_MODE:
 		if (error == 0)