diff options
author | Duane Griffin <duaneg@dghda.com> | 2008-12-19 20:47:17 +0000 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2008-12-31 18:07:40 -0500 |
commit | a63d0ff31a136bdf52350c4e6c2929eaf47ea2b2 (patch) | |
tree | c174d107dbd0f576699fc4a0ab86f2be75573af1 /fs | |
parent | 21acaf8e8da00235be59a3e489d5fa2a8721cafc (diff) | |
download | lwn-a63d0ff31a136bdf52350c4e6c2929eaf47ea2b2.tar.gz lwn-a63d0ff31a136bdf52350c4e6c2929eaf47ea2b2.zip |
freevxfs: ensure fast symlinks are NUL-terminated
Ensure fast symlink targets are NUL-terminated, even if corrupted
on-disk.
Cc: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Duane Griffin <duaneg@dghda.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/freevxfs/vxfs_inode.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/freevxfs/vxfs_inode.c b/fs/freevxfs/vxfs_inode.c index 9f3f2ceb73f0..03a6ea5e99f7 100644 --- a/fs/freevxfs/vxfs_inode.c +++ b/fs/freevxfs/vxfs_inode.c @@ -325,8 +325,10 @@ vxfs_iget(struct super_block *sbp, ino_t ino) if (!VXFS_ISIMMED(vip)) { ip->i_op = &page_symlink_inode_operations; ip->i_mapping->a_ops = &vxfs_aops; - } else + } else { ip->i_op = &vxfs_immed_symlink_iops; + vip->vii_immed.vi_immed[ip->i_size] = '\0'; + } } else init_special_inode(ip, ip->i_mode, old_decode_dev(vip->vii_rdev)); |