freevxfs: ensure fast symlinks are NUL-terminated
authorDuane Griffin <duaneg@dghda.com>
Fri, 19 Dec 2008 20:47:17 +0000 (20:47 +0000)
committerAl Viro <viro@zeniv.linux.org.uk>
Wed, 31 Dec 2008 23:07:40 +0000 (18:07 -0500)
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>
fs/freevxfs/vxfs_inode.c

index 9f3f2ceb73f00743f0869e086a2e3cb557065748..03a6ea5e99f776c062b1daad14cffbb7d87cde4b 100644 (file)
@@ -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));