svn commit: r216462 - head/sys/fs/devfs
Jaakko Heinonen
jh at FreeBSD.org
Wed Dec 15 16:49:47 UTC 2010
Author: jh
Date: Wed Dec 15 16:49:47 2010
New Revision: 216462
URL: http://svn.freebsd.org/changeset/base/216462
Log:
Don't allow user created symbolic links to cover another entries marked
with DE_USER. If a devfs rule hid such entry, it was possible to create
infinite number of symbolic links with the same name.
Reviewed by: kib
Modified:
head/sys/fs/devfs/devfs_vnops.c
Modified: head/sys/fs/devfs/devfs_vnops.c
==============================================================================
--- head/sys/fs/devfs/devfs_vnops.c Wed Dec 15 16:42:44 2010 (r216461)
+++ head/sys/fs/devfs/devfs_vnops.c Wed Dec 15 16:49:47 2010 (r216462)
@@ -1580,6 +1580,11 @@ devfs_symlink(struct vop_symlink_args *a
de_covered = devfs_find(dd, de->de_dirent->d_name,
de->de_dirent->d_namlen, 0);
if (de_covered != NULL) {
+ if ((de_covered->de_flags & DE_USER) != 0) {
+ devfs_delete(dmp, de, DEVFS_DEL_NORECURSE);
+ sx_xunlock(&dmp->dm_lock);
+ return (EEXIST);
+ }
KASSERT((de_covered->de_flags & DE_COVERED) == 0,
("devfs_symlink: entry %p already covered", de_covered));
de_covered->de_flags |= DE_COVERED;
More information about the svn-src-head
mailing list