ANDROID: sdcardfs: d_splice_alias can return error values
authorDaniel Rosenberg <drosen@google.com>
Wed, 7 Jun 2017 19:44:50 +0000 (12:44 -0700)
committerStricted <info@stricted.net>
Thu, 11 Oct 2018 16:03:41 +0000 (18:03 +0200)
We must check that d_splice_alias was successful before using its
output.

Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 62390017
Change-Id: Ifda0a052fb3f67e35c635a4e5e907876c5400978

fs/sdcardfs/lookup.c

index fceae4cc68c388dcbb28cbc00c39500f22aa5e2f..4ade6d1250f7ba8d2fe8670217698015d2a55280 100644 (file)
@@ -199,7 +199,8 @@ static struct dentry *__sdcardfs_interpose(struct dentry *dentry,
 
        ret_dentry = d_splice_alias(inode, dentry);
        dentry = ret_dentry ?: dentry;
-       update_derived_permission_lock(dentry);
+       if (!IS_ERR(dentry))
+               update_derived_permission_lock(dentry);
 out:
        return ret_dentry;
 }