freevxfs: ensure fast symlinks are NUL-terminated
Duane Griffin [Fri, 19 Dec 2008 20:47:17 +0000 (20:47 +0000)]
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 9f3f2ce..03a6ea5 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));