DragonFlyBSD Kernel Audit
DF-2623 / fix.diff
← back to finding ↓ download raw
--- a/sys/vfs/hammer2/hammer2_vfsops.c
+++ b/sys/vfs/hammer2/hammer2_vfsops.c
@@ -2402,8 +2421,12 @@
 						      chain->bref.modify_tid,
 						      0, 0);
 			if (error2 == 0) {
+				/* DF-2623: ripdata may point into the old
+				 * (released) buffer after the COW in
+				 * hammer2_chain_modify(); print from the
+				 * chain's current data instead. */
 				kprintf("hammer2: Correct mis-flagged PFS %s\n",
-					ripdata->filename);
+					chain->data->ipdata.filename);
 				chain->bref.flags |= HAMMER2_BREF_FLAG_PFSROOT;
 			} else {
 				error |= error2;