DragonFlyBSD Kernel Audit
DF-3012 / fix.diff
← back to finding ↓ download raw
--- a/sys/vfs/hammer/hammer_object.c
+++ b/sys/vfs/hammer/hammer_object.c
@@ -709,6 +709,7 @@
 		KKASSERT(record->leaf.base.key > 0);
 		cursor.key_beg.key = record->leaf.base.key;
 		if (--max_iterations == 0) {
+			record->flags |= HAMMER_RECF_DELETED_FE;
 			hammer_rel_mem_record(record);
 			hmkprintf(trans->hmp, "Failed to find an unused namekey\n");
 			error = ENOSPC;
@@ -973,6 +974,7 @@
 					       errorp);
 	if (record->resv == NULL) {
 		hdkprintf("reservation failed\n");
+		record->flags |= HAMMER_RECF_DELETED_FE;
 		hammer_rel_mem_record(record);
 		return(NULL);
 	}