Commit 1fc8a117 authored by Joel Becker's avatar Joel Becker

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: default avatarJoel Becker <joel.becker@oracle.com>
Cc: stable@kernel.org
parent 899611ee
...@@ -128,7 +128,7 @@ static void *ocfs2_fast_follow_link(struct dentry *dentry, ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment