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 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.