⬢ DragonFlyBSD Kernel Audit
DF-3109 / fix.diff
← back to finding ↓ download raw
--- a/sys/vfs/hammer/hammer_cursor.c
+++ b/sys/vfs/hammer/hammer_cursor.c
@@ -198,8 +198,11 @@ hammer_init_cursor(hammer_cursor_t cursor, hammer_transaction_t trans,
 	/*
 	 * Step 3 - finish initializing the cursor by acquiring the parent
 	 */
 	cursor->node = node;
 	if (error == 0)
 		error = hammer_load_cursor_parent(cursor, 0);
-	KKASSERT(error == 0);
-	/* if (error) hammer_done_cursor(cursor); */
+	if (error) {
+		hammer_done_cursor(cursor);
+		cursor->node = NULL;
+		cursor->ip = NULL;
+		return (error);
+	}
 	return(error);
 }