sysv: ensure fast symlinks are NUL-terminated
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> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Родитель
e83c1397ca
Коммит
21acaf8e8d
|
@ -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);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче