virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] virtio_console: fix a crash in config_work_handler
       [not found] <20170116033550.GK16209@amit-lp.rh>
@ 2017-01-16  9:45 ` G. Campana
       [not found] ` <1484559902-5346-1-git-send-email-gcampana@quarkslab.com>
  1 sibling, 0 replies; 3+ messages in thread
From: G. Campana @ 2017-01-16  9:45 UTC (permalink / raw)
  To: Amit Shah; +Cc: G. Campana, linux-kernel, virtualization

Using control_work instead of config_work as the 3rd argument to
container_of results in an invalid portdev pointer. Indeed, the work
structure is initialized as below:

    INIT_WORK(&portdev->config_work, &config_work_handler);

It leads to a crash when portdev->vdev is dereferenced later. This bug
is triggered when the guest uses a virtio-console without multiport
feature and receives a config_changed virtio interrupt.

Signed-off-by: G. Campana <gcampana@quarkslab.com>
---
 drivers/char/virtio_console.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
index 8b00e79..17857be 100644
--- a/drivers/char/virtio_console.c
+++ b/drivers/char/virtio_console.c
@@ -1862,7 +1862,7 @@ static void config_work_handler(struct work_struct *work)
 {
 	struct ports_device *portdev;
 
-	portdev = container_of(work, struct ports_device, control_work);
+	portdev = container_of(work, struct ports_device, config_work);
 	if (!use_multiport(portdev)) {
 		struct virtio_device *vdev;
 		struct port *port;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] virtio_console: fix a crash in config_work_handler
       [not found] ` <1484559902-5346-1-git-send-email-gcampana@quarkslab.com>
@ 2017-01-16 10:27   ` Amit Shah
       [not found]   ` <20170116102723.GM16209@amit-lp.rh>
  1 sibling, 0 replies; 3+ messages in thread
From: Amit Shah @ 2017-01-16 10:27 UTC (permalink / raw)
  To: G. Campana; +Cc: Michael S. Tsirkin, linux-kernel, virtualization

On (Mon) 16 Jan 2017 [10:45:02], G. Campana wrote:
> Using control_work instead of config_work as the 3rd argument to
> container_of results in an invalid portdev pointer. Indeed, the work
> structure is initialized as below:
> 
>     INIT_WORK(&portdev->config_work, &config_work_handler);
> 
> It leads to a crash when portdev->vdev is dereferenced later. This bug
> is triggered when the guest uses a virtio-console without multiport
> feature and receives a config_changed virtio interrupt.
> 
> Signed-off-by: G. Campana <gcampana@quarkslab.com>

Reviewed-by: Amit Shah <amit.shah@redhat.com>

Michael, can you please pick this up?

		Amit

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] virtio_console: fix a crash in config_work_handler
       [not found]   ` <20170116102723.GM16209@amit-lp.rh>
@ 2017-01-16 13:30     ` Michael S. Tsirkin
  0 siblings, 0 replies; 3+ messages in thread
From: Michael S. Tsirkin @ 2017-01-16 13:30 UTC (permalink / raw)
  To: Amit Shah; +Cc: G. Campana, linux-kernel, virtualization

On Mon, Jan 16, 2017 at 03:57:23PM +0530, Amit Shah wrote:
> On (Mon) 16 Jan 2017 [10:45:02], G. Campana wrote:
> > Using control_work instead of config_work as the 3rd argument to
> > container_of results in an invalid portdev pointer. Indeed, the work
> > structure is initialized as below:
> > 
> >     INIT_WORK(&portdev->config_work, &config_work_handler);
> > 
> > It leads to a crash when portdev->vdev is dereferenced later. This bug
> > is triggered when the guest uses a virtio-console without multiport
> > feature and receives a config_changed virtio interrupt.
> > 
> > Signed-off-by: G. Campana <gcampana@quarkslab.com>
> 
> Reviewed-by: Amit Shah <amit.shah@redhat.com>
> 
> Michael, can you please pick this up?
> 
> 		Amit

Sure.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-01-16 13:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20170116033550.GK16209@amit-lp.rh>
2017-01-16  9:45 ` [PATCH v2] virtio_console: fix a crash in config_work_handler G. Campana
     [not found] ` <1484559902-5346-1-git-send-email-gcampana@quarkslab.com>
2017-01-16 10:27   ` Amit Shah
     [not found]   ` <20170116102723.GM16209@amit-lp.rh>
2017-01-16 13:30     ` Michael S. Tsirkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).