]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Fix missing jump to error cleanup in qemuParseCommandLineDisk
authorDaniel P. Berrange <berrange@redhat.com>
Tue, 24 Sep 2013 15:28:22 +0000 (16:28 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Wed, 25 Sep 2013 14:49:27 +0000 (15:49 +0100)
In a number of places in qemuParseCommandLineDisk, an error
is reported, but no 'goto error' jump is used. This causes
failure to report OOM conditions to the caller.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
src/qemu/qemu_command.c

index eef1541561aa79a6032629e6e1b4afe5ea700c8c..992714baf7d785e54d5f6c3697e25111ae20c321 100644 (file)
@@ -10163,6 +10163,7 @@ qemuParseCommandLineDisk(virDomainXMLOptionPtr xmlopt,
             if ((def->iomode = virDomainDiskIoTypeFromString(values[i])) < 0) {
                 virReportError(VIR_ERR_INTERNAL_ERROR,
                                _("cannot parse io mode '%s'"), values[i]);
+                goto error;
             }
         } else if (STREQ(keywords[i], "cyls")) {
             if (virStrToLong_ui(values[i], NULL, 10,
@@ -10172,6 +10173,7 @@ qemuParseCommandLineDisk(virDomainXMLOptionPtr xmlopt,
                 virReportError(VIR_ERR_INTERNAL_ERROR,
                                _("cannot parse cylinders value'%s'"),
                                values[i]);
+                goto error;
             }
         } else if (STREQ(keywords[i], "heads")) {
             if (virStrToLong_ui(values[i], NULL, 10,
@@ -10181,6 +10183,7 @@ qemuParseCommandLineDisk(virDomainXMLOptionPtr xmlopt,
                 virReportError(VIR_ERR_INTERNAL_ERROR,
                                _("cannot parse heads value'%s'"),
                                values[i]);
+                goto error;
             }
         } else if (STREQ(keywords[i], "secs")) {
             if (virStrToLong_ui(values[i], NULL, 10,
@@ -10190,6 +10193,7 @@ qemuParseCommandLineDisk(virDomainXMLOptionPtr xmlopt,
                 virReportError(VIR_ERR_INTERNAL_ERROR,
                                _("cannot parse sectors value'%s'"),
                                values[i]);
+                goto error;
             }
         } else if (STREQ(keywords[i], "trans")) {
             def->geometry.trans =
@@ -10201,6 +10205,7 @@ qemuParseCommandLineDisk(virDomainXMLOptionPtr xmlopt,
                 virReportError(VIR_ERR_INTERNAL_ERROR,
                                _("cannot parse translation value'%s'"),
                                values[i]);
+                goto error;
             }
         }
     }