[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-mm-commits
Subject: [patch 31/31] ocfs2: fix potential use after free
From: akpm () linux-foundation ! org
Date: 2018-11-30 22:10:54
Message-ID: 20181130221054.szxve%akpm () linux-foundation ! org
[Download RAW message or body]
From: Pan Bian <bianpan2016@163.com>
Subject: ocfs2: fix potential use after free
ocfs2_get_dentry() calls iput(inode) to drop the reference count of inode,
and if the reference count hits 0, inode is freed. However, in this
function, it then reads inode->i_generation, which may result in a use
after free bug. Move the put operation later.
Link: http://lkml.kernel.org/r/1543109237-110227-1-git-send-email-bianpan2016@163.com
Fixes: 781f200cb7a("ocfs2: Remove masklog ML_EXPORT.")
Signed-off-by: Pan Bian <bianpan2016@163.com>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Mark Fasheh <mark@fasheh.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Joseph Qi <jiangqi903@gmail.com>
Cc: Changwei Ge <ge.changwei@h3c.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/ocfs2/export.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/fs/ocfs2/export.c~ocfs2-fix-potential-use-after-free
+++ a/fs/ocfs2/export.c
@@ -125,10 +125,10 @@ check_err:
check_gen:
if (handle->ih_generation != inode->i_generation) {
- iput(inode);
trace_ocfs2_get_dentry_generation((unsigned long long)blkno,
handle->ih_generation,
inode->i_generation);
+ iput(inode);
result = ERR_PTR(-ESTALE);
goto bail;
}
_
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic