Messages in this thread Patch in this message |  | | | From | "Duane Griffin" <> | | Subject | [PATCH, v5] sysv: ensure fast symlinks are NUL-terminated | | Date | Fri, 19 Dec 2008 20:47:16 +0000 |
| |
Ensure fast symlink targets are NUL-terminated, even if corrupted on-disk.
Cc: Christoph Hellwig <hch@infradead.org> Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Duane Griffin <duaneg@dghda.com> --- Changes from v4: fixed off-by-one bug in maximum length, as pointed out by Andreas Dilger.
fs/sysv/inode.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/fs/sysv/inode.c b/fs/sysv/inode.c index df0d435..3d81bf5 100644 --- a/fs/sysv/inode.c +++ b/fs/sysv/inode.c @@ -27,6 +27,7 @@ #include <linux/init.h> #include <linux/buffer_head.h> #include <linux/vfs.h> +#include <linux/namei.h> #include <asm/byteorder.h> #include "sysv.h" @@ -163,8 +164,11 @@ void sysv_set_inode(struct inode *inode, dev_t rdev) if (inode->i_blocks) { inode->i_op = &sysv_symlink_inode_operations; inode->i_mapping->a_ops = &sysv_aops; - } else + } else { inode->i_op = &sysv_fast_symlink_inode_operations; + nd_terminate_link(SYSV_I(inode)->i_data, inode->i_size, + sizeof(SYSV_I(inode)->i_data) - 1); + } } else init_special_inode(inode, inode->i_mode, rdev); } -- 1.6.0.4
|  |