summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDuane Griffin <duaneg@dghda.com>2008-12-19 21:47:17 +0100
committerAl Viro <viro@zeniv.linux.org.uk>2009-01-01 00:07:40 +0100
commita63d0ff31a136bdf52350c4e6c2929eaf47ea2b2 (patch)
treec174d107dbd0f576699fc4a0ab86f2be75573af1
parentsysv: ensure fast symlinks are NUL-terminated (diff)
downloadlinux-a63d0ff31a136bdf52350c4e6c2929eaf47ea2b2.tar.xz
linux-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>
-rw-r--r--fs/freevxfs/vxfs_inode.c4
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));