]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Fix crash when attempting to shutdown inactive QEMU vm
authorDaniel P. Berrange <berrange@redhat.com>
Fri, 31 Jul 2009 14:50:46 +0000 (15:50 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Fri, 31 Jul 2009 16:06:44 +0000 (17:06 +0100)
* src/qemu_driver.c: Add check that QEMU is active before attemting
  to shutdown. Fix error code for check in destroy method

src/qemu_driver.c

index 26897d3421fa9d1e42965aa7d5d81aeba79d68ee..cebbafb969b1fbb5b06c9a80cb5230ef599180aa 100644 (file)
@@ -2940,6 +2940,12 @@ static int qemudDomainShutdown(virDomainPtr dom) {
         goto cleanup;
     }
 
+    if (!virDomainIsActive(vm)) {
+        qemudReportError(dom->conn, dom, NULL, VIR_ERR_OPERATION_INVALID,
+                         "%s", _("domain is not running"));
+        goto cleanup;
+    }
+
     if (qemudMonitorCommand(vm, "system_powerdown", &info) < 0) {
         qemudReportError(dom->conn, dom, NULL, VIR_ERR_OPERATION_FAILED,
                          "%s", _("shutdown operation failed"));
@@ -2971,7 +2977,7 @@ static int qemudDomainDestroy(virDomainPtr dom) {
         goto cleanup;
     }
     if (!virDomainIsActive(vm)) {
-        qemudReportError(dom->conn, dom, NULL, VIR_ERR_OPERATION_FAILED,
+        qemudReportError(dom->conn, dom, NULL, VIR_ERR_OPERATION_INVALID,
                          "%s", _("domain is not running"));
         goto cleanup;
     }