[lkml]   [2019]   [Feb]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
Subject[PATCH 3.16 225/305] exportfs: do not read dentry after free
3.16.63-rc1 review patch.  If anyone has any objections, please let me know.


From: Pan Bian <>

commit 2084ac6c505a58f7efdec13eba633c6aaa085ca5 upstream.

The function dentry_connected calls dput(dentry) to drop the previously
acquired reference to dentry. In this case, dentry can be released.
After that, IS_ROOT(dentry) checks the condition
(dentry == dentry->d_parent), which may result in a use-after-free bug.
This patch directly compares dentry with its parent obtained before
dropping the reference.

Fixes: a056cc8934c("exportfs: stop retrying once we race with

Signed-off-by: Pan Bian <>
Signed-off-by: Al Viro <>
Signed-off-by: Ben Hutchings <>
fs/exportfs/expfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/fs/exportfs/expfs.c
+++ b/fs/exportfs/expfs.c
@@ -76,7 +76,7 @@ static bool dentry_connected(struct dent
struct dentry *parent = dget_parent(dentry);

- if (IS_ROOT(dentry)) {
+ if (dentry == parent) {
return false;
 \ /
  Last update: 2019-02-03 14:52    [W:0.971 / U:5.968 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site