Greg Kroah-Hartman
2023-Jan-20 07:15 UTC
[PATCH v1 2/6] virtio console: Harden port adding
On Thu, Jan 19, 2023 at 10:13:18PM +0200, Alexander Shishkin wrote:> Greg Kroah-Hartman <gregkh at linuxfoundation.org> writes: > > > Then you need to copy it out once, and then only deal with the local > > copy. Otherwise you have an incomplete snapshot. > > Ok, would you be partial to something like this: > > >From 1bc9bb84004154376c2a0cf643d53257da6d1cd7 Mon Sep 17 00:00:00 2001 > From: Alexander Shishkin <alexander.shishkin at linux.intel.com> > Date: Thu, 19 Jan 2023 21:59:02 +0200 > Subject: [PATCH] virtio console: Keep a local copy of the control structure > > When handling control messages, instead of peeking at the device memory > to obtain bits of the control structure, take a snapshot of it once and > use it instead, to prevent it from changing under us. This avoids races > between port id validation and control event decoding, which can lead > to, for example, a NULL dereference in port removal of a nonexistent > port. > > The control structure is small enough (8 bytes) that it can be cached > directly on the stack. > > Signed-off-by: Alexander Shishkin <alexander.shishkin at linux.intel.com> > Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org> > Cc: Arnd Bergmann <arnd at arndb.de> > Cc: Amit Shah <amit at kernel.org> > --- > drivers/char/virtio_console.c | 29 +++++++++++++++-------------- > 1 file changed, 15 insertions(+), 14 deletions(-)Yes, this looks much better, thanks! Reviewed-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>