summaryrefslogtreecommitdiffstats
path: root/sys/geom
diff options
context:
space:
mode:
authortrasz <trasz@FreeBSD.org>2015-08-04 10:40:08 +0000
committertrasz <trasz@FreeBSD.org>2015-08-04 10:40:08 +0000
commit33d415d265b19b6be3c2393c106b7e49e538dbfe (patch)
treee5e7d90aded624e61dc0a64b9ae4ea9c03fe69d6 /sys/geom
parent8375b98de4c421f80c369722ba6bed7ea63aab2f (diff)
downloadFreeBSD-src-33d415d265b19b6be3c2393c106b7e49e538dbfe.zip
FreeBSD-src-33d415d265b19b6be3c2393c106b7e49e538dbfe.tar.gz
Fix panic triggered by code like this:
open("/dev/md0", O_EXEC); Discussed with: kib@, mav@ MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D3051
Diffstat (limited to 'sys/geom')
-rw-r--r--sys/geom/geom_dev.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/geom/geom_dev.c b/sys/geom/geom_dev.c
index 3df7f3e..0d34ef5 100644
--- a/sys/geom/geom_dev.c
+++ b/sys/geom/geom_dev.c
@@ -358,6 +358,13 @@ g_dev_open(struct cdev *dev, int flags, int fmt, struct thread *td)
#else
e = 0;
#endif
+
+ /*
+ * This happens on attempt to open a device node with O_EXEC.
+ */
+ if (r + w + e == 0)
+ return (EINVAL);
+
if (w) {
/*
* When running in very secure mode, do not allow
OpenPOWER on IntegriCloud