diff mbox

commit: Add NULL check for overlay_bs

Message ID 1499687125-22948-1-git-send-email-kwolf@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Kevin Wolf July 10, 2017, 11:45 a.m. UTC
I can't see how overlay_bs could become NULL with the current code, but
other code in this function already checks it and we can make Coverity
happy with this check, so let's add it.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/commit.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Peter Maydell July 10, 2017, 12:09 p.m. UTC | #1
On 10 July 2017 at 12:45, Kevin Wolf <kwolf@redhat.com> wrote:
> I can't see how overlay_bs could become NULL with the current code, but
> other code in this function already checks it and we can make Coverity
> happy with this check, so let's add it.
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>  block/commit.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/block/commit.c b/block/commit.c
> index 774a8a5..50e7950 100644
> --- a/block/commit.c
> +++ b/block/commit.c
> @@ -90,7 +90,9 @@ static void commit_complete(BlockJob *job, void *opaque)
>
>      /* Make sure overlay_bs and top stay around until bdrv_set_backing_hd() */
>      bdrv_ref(top);
> -    bdrv_ref(overlay_bs);
> +    if (overlay_bs) {
> +        bdrv_ref(overlay_bs);
> +    }
>
>      /* Remove base node parent that still uses BLK_PERM_WRITE/RESIZE before
>       * the normal backing chain can be restored. */
> --
> 1.8.3.1

Commit 19ebd13ed45ad5d5f2 which added the bdrv_ref() call
was cc qemu-stable; should we cc this fix too, or are you
happy that it's definitely not actually triggerable in stable?

thanks
-- PMM
Stefan Hajnoczi July 11, 2017, 9:30 a.m. UTC | #2
On Mon, Jul 10, 2017 at 01:45:25PM +0200, Kevin Wolf wrote:
> I can't see how overlay_bs could become NULL with the current code, but
> other code in this function already checks it and we can make Coverity
> happy with this check, so let's add it.
> 
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>  block/commit.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Kevin Wolf July 11, 2017, 9:37 a.m. UTC | #3
Am 10.07.2017 um 14:09 hat Peter Maydell geschrieben:
> On 10 July 2017 at 12:45, Kevin Wolf <kwolf@redhat.com> wrote:
> > I can't see how overlay_bs could become NULL with the current code, but
> > other code in this function already checks it and we can make Coverity
> > happy with this check, so let's add it.
> >
> > Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> > ---
> >  block/commit.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/block/commit.c b/block/commit.c
> > index 774a8a5..50e7950 100644
> > --- a/block/commit.c
> > +++ b/block/commit.c
> > @@ -90,7 +90,9 @@ static void commit_complete(BlockJob *job, void *opaque)
> >
> >      /* Make sure overlay_bs and top stay around until bdrv_set_backing_hd() */
> >      bdrv_ref(top);
> > -    bdrv_ref(overlay_bs);
> > +    if (overlay_bs) {
> > +        bdrv_ref(overlay_bs);
> > +    }
> >
> >      /* Remove base node parent that still uses BLK_PERM_WRITE/RESIZE before
> >       * the normal backing chain can be restored. */
> 
> Commit 19ebd13ed45ad5d5f2 which added the bdrv_ref() call
> was cc qemu-stable; should we cc this fix too, or are you
> happy that it's definitely not actually triggerable in stable?

Okay, I'll add the CC, better safe than sorry.

Kevin
diff mbox

Patch

diff --git a/block/commit.c b/block/commit.c
index 774a8a5..50e7950 100644
--- a/block/commit.c
+++ b/block/commit.c
@@ -90,7 +90,9 @@  static void commit_complete(BlockJob *job, void *opaque)
 
     /* Make sure overlay_bs and top stay around until bdrv_set_backing_hd() */
     bdrv_ref(top);
-    bdrv_ref(overlay_bs);
+    if (overlay_bs) {
+        bdrv_ref(overlay_bs);
+    }
 
     /* Remove base node parent that still uses BLK_PERM_WRITE/RESIZE before
      * the normal backing chain can be restored. */