| From 1de6b78a7ae8490938927b1d9293a66a6f01c59e Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 19 Feb 2026 16:10:01 -0600 |
| Subject: proc: Fix pointer error dereference |
| |
| From: Ethan Tidmore <ethantidmore06@gmail.com> |
| |
| [ Upstream commit f6a495484a27150fb85f943e1a7464da88c2a797 ] |
| |
| 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: 1df98b8bbcca ("proc_fill_cache(): clean up, get rid of pointless find_inode_number() use") |
| Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com> |
| Link: https://patch.msgid.link/20260219221001.1117135-1-ethantidmore06@gmail.com |
| Signed-off-by: Christian Brauner <brauner@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| fs/proc/base.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| diff --git a/fs/proc/base.c b/fs/proc/base.c |
| index 4eec684baca9f..4c863d17dfb4c 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.51.0 |
| |