From: Darrick J. Wong <darrick.wong@xxxxxxxxxx> Teach callers of inode->i_op->get_link in the vfs code to check for a NULL return value and return an error status instead of blindly dereferencing the returned NULL pointer. Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --- fs/namei.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs/namei.c b/fs/namei.c index 0cab6494978c..0744ab981fa0 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -4737,6 +4737,8 @@ int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen) if (IS_ERR(link)) return PTR_ERR(link); } + if (!link) + return -EUCLEAN; res = readlink_copy(buffer, buflen, link); do_delayed_call(&done); return res; @@ -4763,6 +4765,8 @@ const char *vfs_get_link(struct dentry *dentry, struct delayed_call *done) res = ERR_PTR(security_inode_readlink(dentry)); if (!res) res = inode->i_op->get_link(dentry, inode, done); + if (!res) + return ERR_PTR(-EUCLEAN); } return res; }