svn commit: r244584 - in head: share/man/man9 sys/kern

Jaakko Heinonen jh at FreeBSD.org
Sat Dec 22 13:33:29 UTC 2012


Author: jh
Date: Sat Dec 22 13:33:28 2012
New Revision: 244584
URL: http://svnweb.freebsd.org/changeset/base/244584

Log:
  Reject spaces and double quotation marks in device names. devctl(4)
  and devd(8) can't handle names with such characters properly.
  
  PR:		bin/144736, kern/161912
  Discussed with:	imp, kib, pjd

Modified:
  head/share/man/man9/make_dev.9
  head/sys/kern/kern_conf.c

Modified: head/share/man/man9/make_dev.9
==============================================================================
--- head/share/man/man9/make_dev.9	Sat Dec 22 13:02:03 2012	(r244583)
+++ head/share/man/man9/make_dev.9	Sat Dec 22 13:33:28 2012	(r244584)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd May 3, 2011
+.Dd Dec 22, 2012
 .Dt MAKE_DEV 9
 .Os
 .Sh NAME
@@ -364,6 +364,10 @@ or
 .Qq ..
 path component or ends with
 .Ql / .
+.It Bq Er EINVAL
+The
+.Dv MAKEDEV_CHECKNAME
+flag was specified and the provided device name contains invalid characters.
 .It Bq Er EEXIST
 The
 .Dv MAKEDEV_CHECKNAME

Modified: head/sys/kern/kern_conf.c
==============================================================================
--- head/sys/kern/kern_conf.c	Sat Dec 22 13:02:03 2012	(r244583)
+++ head/sys/kern/kern_conf.c	Sat Dec 22 13:33:28 2012	(r244584)
@@ -698,6 +698,13 @@ prep_devname(struct cdev *dev, const cha
 		;
 
 	for (to = dev->si_name; *from != '\0'; from++, to++) {
+		/*
+		 * Spaces and double quotation marks cause
+		 * problems for the devctl(4) protocol.
+		 * Reject names containing those characters.
+		 */
+		if (isspace(*from) || *from == '"')
+			return (EINVAL);
 		/* Treat multiple sequential slashes as single. */
 		while (from[0] == '/' && from[1] == '/')
 			from++;


More information about the svn-src-all mailing list