Module Name:    src
Committed By:   chs
Date:           Mon Jun 28 17:52:13 UTC 2021

Modified Files:
        src/sys/fs/ptyfs: ptyfs_vnops.c
        src/sys/miscfs/fdesc: fdesc_vnops.c
        src/sys/miscfs/kernfs: kernfs_vnops.c
        src/sys/miscfs/procfs: procfs_vnops.c

Log Message:
VOP_BMAP() may be called via ioctl(FIOGETBMAP) on any vnode that applications
can open.  change various pseudo-fs *_bmap methods return an error instead of
panic.

Reported-by: syzbot+8289a3eaf2ba60958...@syzkaller.appspotmail.com


To generate a diff of this commit:
cvs rdiff -u -r1.62 -r1.63 src/sys/fs/ptyfs/ptyfs_vnops.c
cvs rdiff -u -r1.135 -r1.136 src/sys/miscfs/fdesc/fdesc_vnops.c
cvs rdiff -u -r1.166 -r1.167 src/sys/miscfs/kernfs/kernfs_vnops.c
cvs rdiff -u -r1.215 -r1.216 src/sys/miscfs/procfs/procfs_vnops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/fs/ptyfs/ptyfs_vnops.c
diff -u src/sys/fs/ptyfs/ptyfs_vnops.c:1.62 src/sys/fs/ptyfs/ptyfs_vnops.c:1.63
--- src/sys/fs/ptyfs/ptyfs_vnops.c:1.62	Fri Nov 27 14:43:57 2020
+++ src/sys/fs/ptyfs/ptyfs_vnops.c	Mon Jun 28 17:52:12 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ptyfs_vnops.c,v 1.62 2020/11/27 14:43:57 christos Exp $	*/
+/*	$NetBSD: ptyfs_vnops.c,v 1.63 2021/06/28 17:52:12 chs Exp $	*/
 
 /*
  * Copyright (c) 1993, 1995
@@ -76,7 +76,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ptyfs_vnops.c,v 1.62 2020/11/27 14:43:57 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ptyfs_vnops.c,v 1.63 2021/06/28 17:52:12 chs Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -144,7 +144,7 @@ int	ptyfs_reclaim	(void *);
 int	ptyfs_inactive	(void *);
 #define	ptyfs_lock	genfs_lock
 #define	ptyfs_unlock	genfs_unlock
-#define	ptyfs_bmap	genfs_badop
+#define	ptyfs_bmap	genfs_eopnotsupp
 #define	ptyfs_strategy	genfs_badop
 int	ptyfs_print	(void *);
 int	ptyfs_pathconf	(void *);

Index: src/sys/miscfs/fdesc/fdesc_vnops.c
diff -u src/sys/miscfs/fdesc/fdesc_vnops.c:1.135 src/sys/miscfs/fdesc/fdesc_vnops.c:1.136
--- src/sys/miscfs/fdesc/fdesc_vnops.c:1.135	Sat May  1 15:08:14 2021
+++ src/sys/miscfs/fdesc/fdesc_vnops.c	Mon Jun 28 17:52:13 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: fdesc_vnops.c,v 1.135 2021/05/01 15:08:14 hannken Exp $	*/
+/*	$NetBSD: fdesc_vnops.c,v 1.136 2021/06/28 17:52:13 chs Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fdesc_vnops.c,v 1.135 2021/05/01 15:08:14 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fdesc_vnops.c,v 1.136 2021/06/28 17:52:13 chs Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -104,7 +104,7 @@ int	fdesc_inactive(void *);
 int	fdesc_reclaim(void *);
 #define	fdesc_lock	genfs_lock
 #define	fdesc_unlock	genfs_unlock
-#define	fdesc_bmap	genfs_badop
+#define	fdesc_bmap	genfs_eopnotsupp
 #define	fdesc_strategy	genfs_badop
 int	fdesc_print(void *);
 int	fdesc_pathconf(void *);

Index: src/sys/miscfs/kernfs/kernfs_vnops.c
diff -u src/sys/miscfs/kernfs/kernfs_vnops.c:1.166 src/sys/miscfs/kernfs/kernfs_vnops.c:1.167
--- src/sys/miscfs/kernfs/kernfs_vnops.c:1.166	Sat Jun 27 17:29:19 2020
+++ src/sys/miscfs/kernfs/kernfs_vnops.c	Mon Jun 28 17:52:13 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: kernfs_vnops.c,v 1.166 2020/06/27 17:29:19 christos Exp $	*/
+/*	$NetBSD: kernfs_vnops.c,v 1.167 2021/06/28 17:52:13 chs Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.166 2020/06/27 17:29:19 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.167 2021/06/28 17:52:13 chs Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -166,7 +166,7 @@ int	kernfs_reclaim(void *);
 #define	kernfs_lock	genfs_lock
 #define	kernfs_unlock	genfs_unlock
 #define	kernfs_bmap	genfs_badop
-#define	kernfs_strategy	genfs_badop
+#define	kernfs_strategy	genfs_eopnotsupp
 int	kernfs_print(void *);
 #define	kernfs_islocked	genfs_islocked
 int	kernfs_pathconf(void *);

Index: src/sys/miscfs/procfs/procfs_vnops.c
diff -u src/sys/miscfs/procfs/procfs_vnops.c:1.215 src/sys/miscfs/procfs/procfs_vnops.c:1.216
--- src/sys/miscfs/procfs/procfs_vnops.c:1.215	Sat Jun 27 17:29:19 2020
+++ src/sys/miscfs/procfs/procfs_vnops.c	Mon Jun 28 17:52:13 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: procfs_vnops.c,v 1.215 2020/06/27 17:29:19 christos Exp $	*/
+/*	$NetBSD: procfs_vnops.c,v 1.216 2021/06/28 17:52:13 chs Exp $	*/
 
 /*-
  * Copyright (c) 2006, 2007, 2008, 2020 The NetBSD Foundation, Inc.
@@ -105,7 +105,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: procfs_vnops.c,v 1.215 2020/06/27 17:29:19 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: procfs_vnops.c,v 1.216 2021/06/28 17:52:13 chs Exp $");
 
 #include <sys/param.h>
 #include <sys/atomic.h>
@@ -237,7 +237,7 @@ int	procfs_inactive(void *);
 int	procfs_reclaim(void *);
 #define	procfs_lock	genfs_lock
 #define	procfs_unlock	genfs_unlock
-#define	procfs_bmap	genfs_badop
+#define	procfs_bmap	genfs_eopnotsupp
 #define	procfs_strategy	genfs_badop
 int	procfs_print(void *);
 int	procfs_pathconf(void *);

Reply via email to