diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2024-05-31 06:58:26 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-08-03 10:01:04 +0300 |
commit | 47ff960f0e460f7ab6522de851edc48dcd19b877 (patch) | |
tree | 2d1a3ef578aaed48cc775cac734b143507a24c12 /drivers/media/rc | |
parent | c8f1f53d13c4471ffa284f13a7259672703734ca (diff) | |
download | linux-47ff960f0e460f7ab6522de851edc48dcd19b877.tar.xz |
lirc: rc_dev_get_from_fd(): fix file leak
[ Upstream commit bba1f6758a9ec90c1adac5dcf78f8a15f1bad65b ]
missing fdput() on a failure exit
Fixes: 6a9d552483d50 "media: rc: bpf attach/detach requires write permission" # v6.9
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/media/rc')
-rw-r--r-- | drivers/media/rc/lirc_dev.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c index 52aea4167718..717c441b4a86 100644 --- a/drivers/media/rc/lirc_dev.c +++ b/drivers/media/rc/lirc_dev.c @@ -828,8 +828,10 @@ struct rc_dev *rc_dev_get_from_fd(int fd, bool write) return ERR_PTR(-EINVAL); } - if (write && !(f.file->f_mode & FMODE_WRITE)) + if (write && !(f.file->f_mode & FMODE_WRITE)) { + fdput(f); return ERR_PTR(-EPERM); + } fh = f.file->private_data; dev = fh->rc; |