aboutsummaryrefslogtreecommitdiffstats
path: root/fs/freevxfs
diff options
context:
space:
mode:
authorDuane Griffin <duaneg@dghda.com>2008-12-19 20:47:17 +0000
committerAl Viro <viro@zeniv.linux.org.uk>2008-12-31 18:07:40 -0500
commita63d0ff31a136bdf52350c4e6c2929eaf47ea2b2 (patch)
treec174d107dbd0f576699fc4a0ab86f2be75573af1 /fs/freevxfs
parent21acaf8e8da00235be59a3e489d5fa2a8721cafc (diff)
downloadkernel_samsung_smdk4412-a63d0ff31a136bdf52350c4e6c2929eaf47ea2b2.zip
kernel_samsung_smdk4412-a63d0ff31a136bdf52350c4e6c2929eaf47ea2b2.tar.gz
kernel_samsung_smdk4412-a63d0ff31a136bdf52350c4e6c2929eaf47ea2b2.tar.bz2
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/freevxfs')
-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 9f3f2ce..03a6ea5 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));