From: Jeff Cody <jcody@redhat.com>
To: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
Cc: Kevin Wolf <kwolf@redhat.com>,
peter.maydell@linaro.org, qemu-devel@nongnu.org,
qemu-block@nongnu.org
Subject: Re: [Qemu-devel] [PATCH for-2.10] block/qapi: Remove redundat NULL check to silence Coverity
Date: Mon, 31 Jul 2017 11:17:24 -0400 [thread overview]
Message-ID: <20170731151724.GH6240@localhost.localdomain> (raw)
In-Reply-To: <5e788182-b778-e027-2250-8e7c643786ae@amsat.org>
On Mon, Jul 31, 2017 at 11:54:57AM -0300, Philippe Mathieu-Daudé wrote:
> On 07/31/2017 11:38 AM, Jeff Cody wrote:
> >On Mon, Jul 31, 2017 at 02:51:11PM +0200, Kevin Wolf wrote:
> >>When skipping implicit nodes in bdrv_block_device_info(), we know that
> >>bs0 is always non-NULL; initially, because it's taken from a BdrvChild
> >
> >Not to mention, we deference bs0 in the chunk of code right above this, so
> >we'd segfault anyway if the initial value was NULL.
>
> Yes, please move your assert before:
>
> 137: if (bs0->drv && bs0->backing) {
>
> Once there:
> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>
I don't think moving the assert() is the correct thing to do, as it is
useful when iterating in the while() via backing_bs().
But maybe adding some asserts would be useful, if we are really concerned.
Looking at the code:
135 }
136
Maybe add an assert(bs0) here, as you suggest...
137 if (bs0->drv && bs0->backing) {
138 info->backing_file_depth++;
139 bs0 = bs0->backing->bs;
But then maybe we want one here, too? Or maybe that is overkill :)
140 (*p_image_info)->has_backing_image = true;
141 p_image_info = &((*p_image_info)->backing_image);
142 } else {
143 break;
144 }
145
146 /* Skip automatically inserted nodes that the user isn't aware of for
147 * query-block (blk != NULL), but not for query-named-block-nodes */
148 while (blk && bs0 && bs0->drv && bs0->implicit) {
149 bs0 = backing_bs(bs0);
150 }
> >
> >>and a BdrvChild never has a NULL bs, and after the first iteration
> >>because implicit nodes always have a backing file.
> >>
> >>Remove the NULL check and add an assertion that the implicit node does
> >>indeed have a backing file.
> >>
> >>Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> >
> >
> >Reviewed-by: Jeff Cody <jcody@redhat.com>
> >
> >
> >
> >>---
> >> block/qapi.c | 3 ++-
> >> 1 file changed, 2 insertions(+), 1 deletion(-)
> >>
> >>diff --git a/block/qapi.c b/block/qapi.c
> >>index d2b18ee9df..5f1a71f5d2 100644
> >>--- a/block/qapi.c
> >>+++ b/block/qapi.c
> >>@@ -145,8 +145,9 @@ BlockDeviceInfo *bdrv_block_device_info(BlockBackend *blk,
> >> /* Skip automatically inserted nodes that the user isn't aware of for
> >> * query-block (blk != NULL), but not for query-named-block-nodes */
> >>- while (blk && bs0 && bs0->drv && bs0->implicit) {
> >>+ while (blk && bs0->drv && bs0->implicit) {
> >> bs0 = backing_bs(bs0);
> >>+ assert(bs0);
> >> }
> >> }
> >>--
> >>2.13.3
> >>
> >>
> >
next prev parent reply other threads:[~2017-07-31 15:17 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-31 12:51 [Qemu-devel] [PATCH for-2.10] block/qapi: Remove redundat NULL check to silence Coverity Kevin Wolf
2017-07-31 13:06 ` Eric Blake
2017-07-31 14:00 ` [Qemu-devel] [Qemu-block] " Eric Blake
2017-07-31 14:07 ` Kevin Wolf
2017-07-31 14:38 ` [Qemu-devel] " Jeff Cody
2017-07-31 14:54 ` Philippe Mathieu-Daudé
2017-07-31 15:13 ` Kevin Wolf
2017-07-31 15:17 ` Jeff Cody [this message]
2017-07-31 15:30 ` Philippe Mathieu-Daudé
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=20170731151724.GH6240@localhost.localdomain \
--to=jcody@redhat.com \
--cc=f4bug@amsat.org \
--cc=kwolf@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-block@nongnu.org \
--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.