qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Amit Shah <amit.shah@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu list <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH 1/1] virtio-serial-bus: send_control_msg should not deal with cpkts
Date: Mon, 17 Dec 2012 22:04:29 +0530	[thread overview]
Message-ID: <20121217163429.GE21639@amit.redhat.com> (raw)
In-Reply-To: <87sj74stw6.fsf@blackfin.pond.sub.org>

On (Mon) 17 Dec 2012 [14:14:17], Markus Armbruster wrote:
> Amit Shah <amit.shah@redhat.com> writes:
> 
> > Stuff the cpkt before calling send_control_msg().  it should not be
> > concerned about contents, just send across the buffer.
> >
> > A few code refactorings recently have made mkaing this change easier
> > than earlier.

Ugh, I'll fix the typo and incoherent language here before merging.

> > Coverity and clang have flagged this code several times in the past
> > (cpkt->id not set before send_control_event() passed it on to
> > send_control_msg()).  This will finally eliminate the false-positive.
> >
> > CC: Markus Armbruster <armbru@redhat.com>
> > Signed-off-by: Amit Shah <amit.shah@redhat.com>
> 
> Patch makes sense to me, and the Coverity defect report is gone.

Thanks for checking!

> However, it now worries find_port_by_id() in remove_port() could return
> a null pointer, which is then dereferenced.  No idea why it didn't
> report that before.  Obvious suppressor:
> 
>     diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c
>     index 47d0481..7ff7505 100644
>     --- a/hw/virtio-serial-bus.c
>     +++ b/hw/virtio-serial-bus.c
>     @@ -826,6 +826,7 @@ static void remove_port(VirtIOSerial *vser, uint32_t port_id)
>          vser->ports_map[i] &= ~(1U << (port_id % 32));
> 
>          port = find_port_by_id(vser, port_id);
>     +    assert(port);
>          /* Flush out any unconsumed buffers first */
>          discard_vq_data(port->ovq, &port->vser->vdev);

remove_port() is called by the hot-unplug qdev callback, and if the
port's missing from our tailq, something's gone wrong anyway.  So this
patch makes sense too.

> Reviewed-by: Markus Armbruster <armbru@redhat.com>

Thanks!

		Amit

  reply	other threads:[~2012-12-17 16:34 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-13 11:03 [Qemu-devel] [PATCH 1/1] virtio-serial-bus: send_control_msg should not deal with cpkts Amit Shah
2012-12-17 13:14 ` Markus Armbruster
2012-12-17 16:34   ` Amit Shah [this message]
2012-12-17 17:23     ` Markus Armbruster
2012-12-17 17:31       ` Amit Shah
2012-12-18  7:31         ` Markus Armbruster
2012-12-18  7:43   ` [Qemu-devel] [PATCH 1/1] virtio-serial-bus: assert port is non-null in remove_port() Amit Shah
2012-12-18  8:44     ` Markus Armbruster

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=20121217163429.GE21639@amit.redhat.com \
    --to=amit.shah@redhat.com \
    --cc=armbru@redhat.com \
    --cc=qemu-devel@nongnu.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 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).