Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Oct 2010 21:06:57 +0300
From:      Jaakko Heinonen <jh@FreeBSD.org>
To:        freebsd-current@FreeBSD.org
Subject:   HEADS UP: device name checking on device registration
Message-ID:  <20101007180657.GA1383@a91-153-123-205.elisa-laajakaista.fi>

next in thread | raw e-mail | index | archive | help

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20101007180657.GA1383>