HEADS UP: device name checking on device registration

From: Jaakko Heinonen <jh_at_FreeBSD.org>
Date: Thu, 7 Oct 2010 21:06:57 +0300
Since r213526 device names are checked on device registration. That is,
if you call a make_dev*() function with an invalid device name, a panic
will occur by default. For make_dev_credf(9) or make_dev_p(9) you can
specify the MAKEDEV_CHECKNAME flag to get an error return instead of a
panic.

Invalid names are as follows:

- empty name
- names longer than SPECNAMELEN
- names containing "." or ".." path component
- names ending with '/'
- already existing device names

So, if you see a "bad si_name" panic you may have encountered a driver
bug.

Currently several GEOM classes (notably geom_label) allow to create
devices with invalid names. Below is a link to a patch which converts
g_dev_taste() to use make_dev_p() with MAKEDEV_CHECKNAME flag. It's not
a complete solution and essentially changes the panic to a printf.

	http://people.freebsd.org/~jh/patches/geom_dev-checkname.diff

-- 
Jaakko
Received on Thu Oct 07 2010 - 16:25:02 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:08 UTC