From fb12e9a5b3acecedcc888a0ad723826f184c8183 Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Wed, 20 Oct 2010 09:45:19 -0700 Subject: [PATCH] devfs - Fix broken assertion * When checking fp->f_flag against ap->a_mode both sides must be masked with FMASK. * Fixes a panic which can occur when a unix domain socket is being garbage collected (FMARK set). --- sys/vfs/devfs/devfs_vnops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/vfs/devfs/devfs_vnops.c b/sys/vfs/devfs/devfs_vnops.c index 4916632642..013e06f8b8 100644 --- a/sys/vfs/devfs/devfs_vnops.c +++ b/sys/vfs/devfs/devfs_vnops.c @@ -996,7 +996,7 @@ devfs_spec_open(struct vop_open_args *ap) if (ap->a_fp) { KKASSERT(ap->a_fp->f_type == DTYPE_VNODE); - KKASSERT(ap->a_fp->f_flag == (ap->a_mode & FMASK)); + KKASSERT((ap->a_fp->f_flag & FMASK) == (ap->a_mode & FMASK)); ap->a_fp->f_ops = &devfs_dev_fileops; KKASSERT(ap->a_fp->f_data == (void *)vp); } -- 2.11.4.GIT