DF-0796 / fix.diff
diff --git a/sys/vfs/hammer2/hammer2_inode.c b/sys/vfs/hammer2/hammer2_inode.c --- a/sys/vfs/hammer2/hammer2_inode.c +++ b/sys/vfs/hammer2/hammer2_inode.c @@ -448,6 +448,17 @@ } /* + * No chain at this cluster slot (interior gap, e.g. a degraded + * slave whose type was reset to HAMMER2_PFSTYPE_NONE in + * hammer2_vfsops.c). Mirror hammer2_inode_chain() semantics and + * return NULL instead of dereferencing chain->parent below. + */ + if (chain == NULL) { + *parentp = NULL; + return NULL; + } + + /* * Get parent, lock order must be (parent, chain). */ parent = chain->parent; |