]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Devfs replaces file ops vector with devfs-specific one in devfs_open(),
authorkib <kib@FreeBSD.org>
Fri, 15 May 2009 19:23:05 +0000 (19:23 +0000)
committerkib <kib@FreeBSD.org>
Fri, 15 May 2009 19:23:05 +0000 (19:23 +0000)
commitcd869a4a4264d97fea3fa87557bf8d06e7c86e31
tree857a77315e158a8d426b5c69a7b01eec3f963232
parent9c36d077f5eace55ffae74855463708b1ab049c5
Devfs replaces file ops vector with devfs-specific one in devfs_open(),
before the struct file is fully initialized in vn_open(), in particular,
fp->f_vnode is NULL. Other thread calling file operation before f_vnode
is set results in NULL pointer dereference in devvn_refthread().

Initialize f_vnode before calling d_fdopen() cdevsw method, that might
set file ops too.

Reported and tested by: Chris Timmons <cwt networks cwu edu>
(RELENG_7 version)
MFC after: 3 days
sys/fs/devfs/devfs_vnops.c