[PATCH] fanotify: avoid possible NULL dereference

From: Su Hui
Date: Tue Aug 08 2023 - 21:11:31 EST


smatch error:
fs/notify/fanotify/fanotify_user.c:462 copy_fid_info_to_user():
we previously assumed 'fh' could be null (see line 421)

Fixes: afc894c784c8 ("fanotify: Store fanotify handles differently")
Signed-off-by: Su Hui <suhui@xxxxxxxxxxxx>
---
fs/notify/fanotify/fanotify_user.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c
index f69c451018e3..5a5487ae2460 100644
--- a/fs/notify/fanotify/fanotify_user.c
+++ b/fs/notify/fanotify/fanotify_user.c
@@ -459,12 +459,13 @@ static int copy_fid_info_to_user(__kernel_fsid_t *fsid, struct fanotify_fh *fh,
if (WARN_ON_ONCE(len < sizeof(handle)))
return -EFAULT;

- handle.handle_type = fh->type;
handle.handle_bytes = fh_len;

/* Mangle handle_type for bad file_handle */
if (!fh_len)
handle.handle_type = FILEID_INVALID;
+ else
+ handle.handle_type = fh->type;

if (copy_to_user(buf, &handle, sizeof(handle)))
return -EFAULT;
--
2.30.2