| From 64f650bb0cd72066b38231a922b5e16a2a2689fe Mon Sep 17 00:00:00 2001 |
| From: Zhouyang Jia <jiazhouyang09@gmail.com> |
| Date: Tue, 16 Jul 2019 16:28:13 -0700 |
| Subject: coda: add error handling for fget |
| |
| [ Upstream commit 02551c23bcd85f0c68a8259c7b953d49d44f86af ] |
| |
| When fget fails, the lack of error-handling code may cause unexpected |
| results. |
| |
| This patch adds error-handling code after calling fget. |
| |
| Link: http://lkml.kernel.org/r/2514ec03df9c33b86e56748513267a80dd8004d9.1558117389.git.jaharkes@cs.cmu.edu |
| Signed-off-by: Zhouyang Jia <jiazhouyang09@gmail.com> |
| Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu> |
| Cc: Arnd Bergmann <arnd@arndb.de> |
| Cc: Colin Ian King <colin.king@canonical.com> |
| Cc: Dan Carpenter <dan.carpenter@oracle.com> |
| Cc: David Howells <dhowells@redhat.com> |
| Cc: Fabian Frederick <fabf@skynet.be> |
| Cc: Mikko Rapeli <mikko.rapeli@iki.fi> |
| Cc: Sam Protsenko <semen.protsenko@linaro.org> |
| Cc: Yann Droneaud <ydroneaud@opteya.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| fs/coda/psdev.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| diff --git a/fs/coda/psdev.c b/fs/coda/psdev.c |
| index 822629126e89f..ff9b5cf8ff016 100644 |
| --- a/fs/coda/psdev.c |
| +++ b/fs/coda/psdev.c |
| @@ -187,8 +187,11 @@ static ssize_t coda_psdev_write(struct file *file, const char __user *buf, |
| if (req->uc_opcode == CODA_OPEN_BY_FD) { |
| struct coda_open_by_fd_out *outp = |
| (struct coda_open_by_fd_out *)req->uc_data; |
| - if (!outp->oh.result) |
| + if (!outp->oh.result) { |
| outp->fh = fget(outp->fd); |
| + if (!outp->fh) |
| + return -EBADF; |
| + } |
| } |
| |
| wake_up(&req->uc_sleep); |
| -- |
| 2.20.1 |
| |