From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
patches@lists.linux.dev,
"Storm Dragon" <stormdragon2976@gmail.com>,
"Thomas Weißschuh" <linux@weissschuh.net>,
"Linus Torvalds" <torvalds@linux-foundation.org>
Subject: [PATCH 4.19 6/9] vc_screen: dont clobber return value in vcs_read
Date: Wed, 1 Mar 2023 19:07:22 +0100 [thread overview]
Message-ID: <20230301180650.648484787@linuxfoundation.org> (raw)
In-Reply-To: <20230301180650.395562988@linuxfoundation.org>
From: Thomas Weißschuh <linux@weissschuh.net>
commit ae3419fbac845b4d3f3a9fae4cc80c68d82cdf6e upstream.
Commit 226fae124b2d ("vc_screen: move load of struct vc_data pointer in
vcs_read() to avoid UAF") moved the call to vcs_vc() into the loop.
While doing this it also moved the unconditional assignment of
ret = -ENXIO;
This unconditional assignment was valid outside the loop but within it
it clobbers the actual value of ret.
To avoid this only assign "ret = -ENXIO" when actually needed.
[ Also, the 'goto unlock_out" needs to be just a "break", so that it
does the right thing when it exits on later iterations when partial
success has happened - Linus ]
Reported-by: Storm Dragon <stormdragon2976@gmail.com>
Link: https://lore.kernel.org/lkml/Y%2FKS6vdql2pIsCiI@hotmail.com/
Fixes: 226fae124b2d ("vc_screen: move load of struct vc_data pointer in vcs_read() to avoid UAF")
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://lore.kernel.org/lkml/64981d94-d00c-4b31-9063-43ad0a384bde@t-8ch.de/
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/tty/vt/vc_screen.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
--- a/drivers/tty/vt/vc_screen.c
+++ b/drivers/tty/vt/vc_screen.c
@@ -266,10 +266,11 @@ vcs_read(struct file *file, char __user
ssize_t orig_count;
long p = pos;
- ret = -ENXIO;
vc = vcs_vc(inode, &viewed);
- if (!vc)
- goto unlock_out;
+ if (!vc) {
+ ret = -ENXIO;
+ break;
+ }
/* Check whether we are above size each round,
* as copy_to_user at the end of this loop
next prev parent reply other threads:[~2023-03-01 18:07 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-01 18:07 [PATCH 4.19 0/9] 4.19.275-rc1 review Greg Kroah-Hartman
2023-03-01 18:07 ` [PATCH 4.19 1/9] ARM: dts: rockchip: add power-domains property to dp node on rk3288 Greg Kroah-Hartman
2023-03-01 18:07 ` [PATCH 4.19 2/9] ACPI: NFIT: fix a potential deadlock during NFIT teardown Greg Kroah-Hartman
2023-03-01 18:07 ` [PATCH 4.19 3/9] btrfs: send: limit number of clones and allocated memory size Greg Kroah-Hartman
2023-03-01 18:07 ` [PATCH 4.19 4/9] IB/hfi1: Assign npages earlier Greg Kroah-Hartman
2023-03-01 18:07 ` [PATCH 4.19 5/9] net: Remove WARN_ON_ONCE(sk->sk_forward_alloc) from sk_stream_kill_queues() Greg Kroah-Hartman
2023-03-01 18:07 ` Greg Kroah-Hartman [this message]
2023-03-01 18:07 ` [PATCH 4.19 7/9] dmaengine: sh: rcar-dmac: Check for error num after dma_set_max_seg_size Greg Kroah-Hartman
2023-03-01 18:07 ` [PATCH 4.19 8/9] USB: serial: option: add support for VW/Skoda "Carstick LTE" Greg Kroah-Hartman
2023-03-01 18:07 ` [PATCH 4.19 9/9] USB: core: Dont hold device lock while reading the "descriptors" sysfs file Greg Kroah-Hartman
2023-03-01 18:48 ` [PATCH 4.19 0/9] 4.19.275-rc1 review Slade Watkins
2023-03-01 22:04 ` Pavel Machek
2023-03-02 1:51 ` Shuah Khan
2023-03-02 7:27 ` Jon Hunter
2023-03-02 11:31 ` Sudip Mukherjee (Codethink)
2023-03-02 16:11 ` Naresh Kamboju
2023-03-03 1:29 ` Guenter Roeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230301180650.648484787@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=linux@weissschuh.net \
--cc=patches@lists.linux.dev \
--cc=stable@vger.kernel.org \
--cc=stormdragon2976@gmail.com \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.