diff mbox

[Qemu-block] qemu-img: fix failed qemu-img command return zero exit code defeat

Message ID 1476068829-17426-1-git-send-email-xutian@redhat.com
State New
Headers show

Commit Message

tian xu Oct. 10, 2016, 3:07 a.m. UTC
If backing file can not open when do image rebase, flag 'ret' not
assign a non-zero value, then qemu-img process exit with code zero.
Assign value '-1' to flag 'ret' after report error message to fix
this defeat.

BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1383012

Signed-off-by: Xu Tian <xutian@redhat.com>
---
 qemu-img.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Stefan Hajnoczi Oct. 14, 2016, 3:39 p.m. UTC | #1
On Mon, Oct 10, 2016 at 11:07:09AM +0800, Xu Tian wrote:
> If backing file can not open when do image rebase, flag 'ret' not
> assign a non-zero value, then qemu-img process exit with code zero.
> Assign value '-1' to flag 'ret' after report error message to fix
> this defeat.

I suggest rewording the commit description:

img_rebase() returns 0 (success) when opening the backing file fails
because 'ret' isn't set.

> BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1383012
> 
> Signed-off-by: Xu Tian <xutian@redhat.com>
> ---
>  qemu-img.c | 2 ++
>  1 file changed, 2 insertions(+)

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Kevin Wolf Oct. 14, 2016, 3:49 p.m. UTC | #2
Am 14.10.2016 um 17:39 hat Stefan Hajnoczi geschrieben:
> On Mon, Oct 10, 2016 at 11:07:09AM +0800, Xu Tian wrote:
> > If backing file can not open when do image rebase, flag 'ret' not
> > assign a non-zero value, then qemu-img process exit with code zero.
> > Assign value '-1' to flag 'ret' after report error message to fix
> > this defeat.
> 
> I suggest rewording the commit description:
> 
> img_rebase() returns 0 (success) when opening the backing file fails
> because 'ret' isn't set.

I already reworded it a bit when I applied the patch (it was sent twice
somehow and I replied to the other one):

    If the backing file cannot be opened when doing qemu-img rebase, the
    variable 'ret' was not assigned a non-zero value, and the qemu-img
    process terminated with exit code zero. Fix this.

Kevin
diff mbox

Patch

diff --git a/qemu-img.c b/qemu-img.c
index 46f2a6d..37dcade 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -2918,6 +2918,7 @@  static int img_rebase(int argc, char **argv)
             error_reportf_err(local_err,
                               "Could not open old backing file '%s': ",
                               backing_name);
+            ret = -1;
             goto out;
         }
 
@@ -2935,6 +2936,7 @@  static int img_rebase(int argc, char **argv)
                 error_reportf_err(local_err,
                                   "Could not open new backing file '%s': ",
                                   out_baseimg);
+                ret = -1;
                 goto out;
             }
         }