Message ID | 1291645540-9784-5-git-send-email-Jes.Sorensen@redhat.com |
---|---|
State | New |
Headers | show |
On Mon, Dec 06, 2010 at 03:25:37PM +0100, Jes.Sorensen@redhat.com wrote: > From: Jes Sorensen <Jes.Sorensen@redhat.com> > > Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> > --- > qemu-img.c | 12 ++++++++---- > 1 files changed, 8 insertions(+), 4 deletions(-) Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Am 06.12.2010 15:25, schrieb Jes.Sorensen@redhat.com: > From: Jes Sorensen <Jes.Sorensen@redhat.com> > > Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> > --- > qemu-img.c | 12 ++++++++---- > 1 files changed, 8 insertions(+), 4 deletions(-) > > diff --git a/qemu-img.c b/qemu-img.c > index aded72d..7f4939e 100644 > --- a/qemu-img.c > +++ b/qemu-img.c > @@ -314,13 +314,15 @@ static int img_create(int argc, char **argv) > drv = bdrv_find_format(fmt); > if (!drv) { > error("Unknown file format '%s'", fmt); > - return 1; > + ret = -1; > + goto out; > } > > proto_drv = bdrv_find_protocol(filename); > if (!proto_drv) { > error("Unknown protocol '%s'", filename); > - return 1; > + ret = -1; > + goto out; > } > > create_options = append_option_parameters(create_options, > @@ -1483,14 +1485,16 @@ static int img_resize(int argc, char **argv) > param = parse_option_parameters("", resize_options, NULL); > if (set_option_parameter(param, BLOCK_OPT_SIZE, size)) { > /* Error message already printed when size parsing fails */ > - exit(1); > + ret = -1; > + goto out; bs isn't initialized here, so the bdrv_delete(bs) after out: will crash. > } > n = get_option_parameter(param, BLOCK_OPT_SIZE)->value.n; > free_option_parameters(param); > > bs = bdrv_new_open(filename, fmt, BDRV_O_FLAGS | BDRV_O_RDWR); > if (!bs) { > - return 1; > + ret = -1; > + goto out; > } Same here. Heh, wanted to try it out to be sure, but the compiler notices that, so it doesn't even build: cc1: warnings being treated as errors qemu-img.c: In function 'img_resize': qemu-img.c:1497: error: 'bs' may be used uninitialized in this function Kevin
On 12/06/10 16:25, Kevin Wolf wrote: >> } >> n = get_option_parameter(param, BLOCK_OPT_SIZE)->value.n; >> free_option_parameters(param); >> >> bs = bdrv_new_open(filename, fmt, BDRV_O_FLAGS | BDRV_O_RDWR); >> if (!bs) { >> - return 1; >> + ret = -1; >> + goto out; >> } > > Same here. > > Heh, wanted to try it out to be sure, but the compiler notices that, so > it doesn't even build: Grrrrr I am an idiot! Sorry about the noise, I was sure I had tested that last change. Fix coming up in a few minutes. Cheers, Jes
diff --git a/qemu-img.c b/qemu-img.c index aded72d..7f4939e 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -314,13 +314,15 @@ static int img_create(int argc, char **argv) drv = bdrv_find_format(fmt); if (!drv) { error("Unknown file format '%s'", fmt); - return 1; + ret = -1; + goto out; } proto_drv = bdrv_find_protocol(filename); if (!proto_drv) { error("Unknown protocol '%s'", filename); - return 1; + ret = -1; + goto out; } create_options = append_option_parameters(create_options, @@ -1483,14 +1485,16 @@ static int img_resize(int argc, char **argv) param = parse_option_parameters("", resize_options, NULL); if (set_option_parameter(param, BLOCK_OPT_SIZE, size)) { /* Error message already printed when size parsing fails */ - exit(1); + ret = -1; + goto out; } n = get_option_parameter(param, BLOCK_OPT_SIZE)->value.n; free_option_parameters(param); bs = bdrv_new_open(filename, fmt, BDRV_O_FLAGS | BDRV_O_RDWR); if (!bs) { - return 1; + ret = -1; + goto out; } if (relative) {