[PATCH] proc: Fix pointer error dereference

Ethan Tidmore posted 1 patch 1 month, 1 week ago
fs/proc/base.c | 3 +++
1 file changed, 3 insertions(+)
[PATCH] proc: Fix pointer error dereference
Posted by Ethan Tidmore 1 month, 1 week ago
The function try_lookup_noperm() can return an error pointer. Add check
for error pointer.

Detected by Smatch:
fs/proc/base.c:2148 proc_fill_cache() error:
'child' dereferencing possible ERR_PTR()

Fixes: 61a28784028e6 ("proc: Remove the hard coded inode numbers")
Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com>
---
 fs/proc/base.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/fs/proc/base.c b/fs/proc/base.c
index 4eec684baca9..4c863d17dfb4 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -2128,6 +2128,9 @@ bool proc_fill_cache(struct file *file, struct dir_context *ctx,
 	ino_t ino = 1;
 
 	child = try_lookup_noperm(&qname, dir);
+	if (IS_ERR(child))
+		goto end_instantiate;
+
 	if (!child) {
 		DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq);
 		child = d_alloc_parallel(dir, &qname, &wq);
-- 
2.53.0