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
next prev parent 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).