diff options
author | kib <kib@FreeBSD.org> | 2009-04-20 14:36:01 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2009-04-20 14:36:01 +0000 |
commit | 24114749aa9a49d7dc6ab793a3cc29a66c23dac1 (patch) | |
tree | 723e3e18901f81fb99a47cedb2e49da37674725d /usr.sbin/ppp | |
parent | cbaf9d767f795c296978513820436005cb0fa14d (diff) | |
download | FreeBSD-src-24114749aa9a49d7dc6ab793a3cc29a66c23dac1.zip FreeBSD-src-24114749aa9a49d7dc6ab793a3cc29a66c23dac1.tar.gz |
In ufs_checkpath(), recheck that '..' still points to the inode with
the same inode number after VFS_VGET() and relock of the vp. If '..'
changed, redo the lookup. To reduce code duplication, move the code to
read '..' dirent into the static helper function ufs_dir_dd_ino().
Supply the source inode number as an argument to ufs_checkpath() instead
of the source inode itself. The inode is unlocked, thus it might be
reclaimed, causing accesses to the freed memory.
Use vn_vget_ino() to get the '..' vnode by its inode number, instead of
directly code VFS_VGET() and relock, to properly busy the mount point
while vp lock is dropped.
Noted and reviewed by: tegge
Tested by: pho
MFC after: 1 month
Diffstat (limited to 'usr.sbin/ppp')
0 files changed, 0 insertions, 0 deletions