ocfs2: Don't walk off the end of fast symlinks.
ocfs2 fast symlinks are NUL terminated strings stored inline in the inode data area. However, disk corruption or a local attacker could, in theory, remove that NUL. Because we're using strlen() (my fault, introduced in a731d1 when removing vfs_follow_link()), we could walk off the end of that string. Signed-off-by: Joel Becker <joel.becker@oracle.com> Cc: stable@kernel.org
This commit is contained in:
parent
899611ee7d
commit
1fc8a11786
1 changed files with 1 additions and 1 deletions
|
@ -128,7 +128,7 @@ static void *ocfs2_fast_follow_link(struct dentry *dentry,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Fast symlinks can't be large */
|
/* Fast symlinks can't be large */
|
||||||
len = strlen(target);
|
len = strnlen(target, ocfs2_fast_symlink_chars(inode->i_sb));
|
||||||
link = kzalloc(len + 1, GFP_NOFS);
|
link = kzalloc(len + 1, GFP_NOFS);
|
||||||
if (!link) {
|
if (!link) {
|
||||||
status = -ENOMEM;
|
status = -ENOMEM;
|
||||||
|
|
Loading…
Reference in a new issue