Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Apr 2010 11:40:37 +0300
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Jaakko Heinonen <jh@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r206560 - head/sys/fs/devfs
Message-ID:  <20100414084037.GK2415@deviant.kiev.zoral.com.ua>
In-Reply-To: <201004131853.o3DIrdOT035078@svn.freebsd.org>
References:  <201004131853.o3DIrdOT035078@svn.freebsd.org>

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

--+pJtUjZ2dt//FV8b
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Apr 13, 2010 at 06:53:39PM +0000, Jaakko Heinonen wrote:
> Author: jh
> Date: Tue Apr 13 18:53:39 2010
> New Revision: 206560
> URL: http://svn.freebsd.org/changeset/base/206560
>=20
> Log:
>   - Ignore and report duplicate and empty device names in devfs_populate_=
loop()
>     instead of causing erratic behavior. Currently make_dev(9) can't fail=
, so
>     there is no way to report an error to make_dev(9) callers.
>   - Disallow using "." and ".." in device path names. It didn't work prev=
iously
>     but now it is reported rather than panicing.
>   - Treat multiple sequential slashes as single in device path names.
>  =20
>   Discussed with:	pjd
I think that this could be done more clean.

Main motivation of not changing make_dev(9) seems to be desire to
avoid handling impossible errors for creation of simple-named
devices, where device name is fully controlled by driver. On the
other hand, make_dev(9) is sometimes used to create devfs node with
externally-supplied name, that does not obey devfs naming rules, or
cause some other irregularity.

The make_dev_credf() signature can be changed to return int error code
instead of void, and a flag, lets call it MAKEDEV_CHECKNAME, added,
that specifies that make_dev_credf() is allowed to fail with error
EINVAL if supplied name is not sane. If flag is not supplied,
make_dev_credf() should KASSERT or even just panic(9) if name
does not pass internal validation.

Small comment about the patch itself:
Collapsion of the consequent '/' may be done in make_dev_credv()
immediately after vsnprintf().

--+pJtUjZ2dt//FV8b
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (FreeBSD)

iEYEARECAAYFAkvFf4QACgkQC3+MBN1Mb4g7jACfVTb9ZWTjg48Rii94b+inlhgB
OlEAn0V+ywtGfpP5BRG5PgI6fIXZYp2v
=rqAv
-----END PGP SIGNATURE-----

--+pJtUjZ2dt//FV8b--



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