aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2017-05-08 14:45:26 -0700
committerKees Cook <keescook@chromium.org>2017-05-28 10:11:48 -0700
commitfee2aa753823860f2b8dfe58d98cafe8e4840855 (patch)
treeaff1b1fa62bc05b1d7f0f298ffb1ec8e10742e69
parentNFS: Use ERR_CAST() to avoid cross-structure cast (diff)
downloadlinux-dev-fee2aa753823860f2b8dfe58d98cafe8e4840855.tar.xz
linux-dev-fee2aa753823860f2b8dfe58d98cafe8e4840855.zip
ntfs: Use ERR_CAST() to avoid cross-structure cast
When trying to propagate an error result, the error return path attempts to retain the error, but does this with an open cast across very different types, which the upcoming structure layout randomization plugin flags as being potentially dangerous in the face of randomization. This is a false positive, but what this code actually wants to do is use ERR_CAST() to retain the error value. Cc: Anton Altaparmakov <anton@tuxera.com> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Kees Cook <keescook@chromium.org>
-rw-r--r--fs/ntfs/namei.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ntfs/namei.c b/fs/ntfs/namei.c
index 358258364616..4690cd75d8d7 100644
--- a/fs/ntfs/namei.c
+++ b/fs/ntfs/namei.c
@@ -159,7 +159,7 @@ static struct dentry *ntfs_lookup(struct inode *dir_ino, struct dentry *dent,
PTR_ERR(dent_inode));
kfree(name);
/* Return the error code. */
- return (struct dentry *)dent_inode;
+ return ERR_CAST(dent_inode);
}
/* It is guaranteed that @name is no longer allocated at this point. */
if (MREF_ERR(mref) == -ENOENT) {