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
This commit is contained in:
parent
ef456eec95
commit
2d843e7d34
@ -1580,6 +1580,11 @@ devfs_symlink(struct vop_symlink_args *ap)
|
||||
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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user