From: Fedor Pchelkin <pchelkin@ispras.ru>
Date: Mon, 20 May 2024 09:08:18 +0000 (+0300)
Subject: signalfd: fix error return code
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=f826bc9d6fc2f0e089fb8d104415d72e4d2e204c;p=linux.git

signalfd: fix error return code

If anon_inode_getfile() fails, return appropriate error code. This looks
like a single typo: the similar code changes in timerfd and userfaultfd
are okay.

Found by Linux Verification Center (linuxtesting.org).

Fixes: fbe38120eb1d ("signalfd: convert to ->read_iter()")
Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
Link: https://lore.kernel.org/r/20240520090819.76342-1-pchelkin@ispras.ru
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Christian Brauner <brauner@kernel.org>
---

diff --git a/fs/signalfd.c b/fs/signalfd.c
index 4a5614442dbfa..65fe5eed0be4c 100644
--- a/fs/signalfd.c
+++ b/fs/signalfd.c
@@ -282,7 +282,7 @@ static int do_signalfd4(int ufd, sigset_t *mask, int flags)
 		if (IS_ERR(file)) {
 			put_unused_fd(ufd);
 			kfree(ctx);
-			return ufd;
+			return PTR_ERR(file);
 		}
 		file->f_mode |= FMODE_NOWAIT;