Patchwork Fix error message in drive_init

login
register
mail settings
Submitter Kevin Wolf
Date June 1, 2010, 11:24 a.m.
Message ID <1275391477-16844-1-git-send-email-kwolf@redhat.com>
Download mbox | patch
Permalink /patch/54167/
State New
Headers show

Comments

Kevin Wolf - June 1, 2010, 11:24 a.m.
The real error is the return value of bdrv_open. errno might be overwritten or
not even set to that value in the first place.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 vl.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

Patch

diff --git a/vl.c b/vl.c
index 7f84af8..551138f 100644
--- a/vl.c
+++ b/vl.c
@@ -789,6 +789,7 @@  DriveInfo *drive_init(QemuOpts *opts, void *opaque,
     const char *devaddr;
     DriveInfo *dinfo;
     int snapshot = 0;
+    int ret;
 
     *fatal_error = 1;
 
@@ -1119,9 +1120,10 @@  DriveInfo *drive_init(QemuOpts *opts, void *opaque,
 
     bdrv_flags |= ro ? 0 : BDRV_O_RDWR;
 
-    if (bdrv_open(dinfo->bdrv, file, bdrv_flags, drv) < 0) {
+    ret = bdrv_open(dinfo->bdrv, file, bdrv_flags, drv);
+    if (ret < 0) {
         fprintf(stderr, "qemu: could not open disk image %s: %s\n",
-                        file, strerror(errno));
+                        file, strerror(-ret));
         return NULL;
     }