Coverity found an issue in lxc_driver and uml_driver that we don't
check the return value of register functions.

I've also updated all other places and unify the way we check the
return value.

Signed-off-by: Pavel Hrdina <phrd...@redhat.com>
---
 src/bhyve/bhyve_driver.c                |  6 ++++--
 src/interface/interface_backend_netcf.c |  3 ++-
 src/lxc/lxc_driver.c                    |  6 ++++--
 src/network/bridge_driver.c             |  3 ++-
 src/nwfilter/nwfilter_driver.c          |  9 ++++++---
 src/qemu/qemu_driver.c                  |  6 ++++--
 src/remote/remote_driver.c              | 24 ++++++++++++++++--------
 src/secret/secret_driver.c              |  6 ++++--
 src/storage/storage_driver.c            |  3 ++-
 src/uml/uml_driver.c                    |  6 ++++--
 10 files changed, 48 insertions(+), 24 deletions(-)

diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c
index 9dbb299..f1ed510 100644
--- a/src/bhyve/bhyve_driver.c
+++ b/src/bhyve/bhyve_driver.c
@@ -715,7 +715,9 @@ static virStateDriver bhyveStateDriver = {
 int
 bhyveRegister(void)
 {
-     virRegisterDriver(&bhyveDriver);
-     virRegisterStateDriver(&bhyveStateDriver);
+     if (virRegisterDriver(&bhyveDriver) < 0)
+        return -1;
+     if (virRegisterStateDriver(&bhyveStateDriver) < 0)
+        return -1;
      return 0;
 }
diff --git a/src/interface/interface_backend_netcf.c 
b/src/interface/interface_backend_netcf.c
index b4c1fe9..98ce83b 100644
--- a/src/interface/interface_backend_netcf.c
+++ b/src/interface/interface_backend_netcf.c
@@ -1194,6 +1194,7 @@ int netcfIfaceRegister(void) {
                        _("failed to register netcf interface driver"));
         return -1;
     }
-    virRegisterStateDriver(&interfaceStateDriver);
+    if (virRegisterStateDriver(&interfaceStateDriver) < 0)
+        return -1;
     return 0;
 }
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index 0ab1ba2..27c27d8 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -5767,7 +5767,9 @@ static virStateDriver lxcStateDriver = {
 
 int lxcRegister(void)
 {
-    virRegisterDriver(&lxcDriver);
-    virRegisterStateDriver(&lxcStateDriver);
+    if (virRegisterDriver(&lxcDriver) < 0)
+        return -1;
+    if (virRegisterStateDriver(&lxcStateDriver) < 0)
+        return -1;
     return 0;
 }
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index c797f8f..181541e 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -3232,7 +3232,8 @@ static virStateDriver networkStateDriver = {
 int networkRegister(void) {
     if (virRegisterNetworkDriver(&networkDriver) < 0)
         return -1;
-    virRegisterStateDriver(&networkStateDriver);
+    if (virRegisterStateDriver(&networkStateDriver) < 0)
+        return -1;
     return 0;
 }
 
diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c
index 2e89d07..228794d 100644
--- a/src/nwfilter/nwfilter_driver.c
+++ b/src/nwfilter/nwfilter_driver.c
@@ -716,8 +716,11 @@ static virDomainConfNWFilterDriver domainNWFilterDriver = {
 
 
 int nwfilterRegister(void) {
-    virRegisterNWFilterDriver(&nwfilterDriver);
-    virRegisterStateDriver(&stateDriver);
-    virDomainConfNWFilterRegister(&domainNWFilterDriver);
+    if (virRegisterNWFilterDriver(&nwfilterDriver) < 0)
+        return -1;
+    if (virRegisterStateDriver(&stateDriver) < 0)
+        return -1;
+    if (virDomainConfNWFilterRegister(&domainNWFilterDriver) < 0)
+        return -1;
     return 0;
 }
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 89f443f..fc382a5 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -16796,7 +16796,9 @@ static virStateDriver qemuStateDriver = {
 };
 
 int qemuRegister(void) {
-    virRegisterDriver(&qemuDriver);
-    virRegisterStateDriver(&qemuStateDriver);
+    if (virRegisterDriver(&qemuDriver) < 0)
+        return -1;
+    if (virRegisterStateDriver(&qemuStateDriver) < 0)
+        return -1;
     return 0;
 }
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index 955465a..c9711bb 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -7825,15 +7825,23 @@ remoteRegister(void)
 {
     remoteDriver = &remote_driver;
 
-    if (virRegisterDriver(&remote_driver) == -1) return -1;
-    if (virRegisterNetworkDriver(&network_driver) == -1) return -1;
-    if (virRegisterInterfaceDriver(&interface_driver) == -1) return -1;
-    if (virRegisterStorageDriver(&storage_driver) == -1) return -1;
-    if (virRegisterNodeDeviceDriver(&node_device_driver) == -1) return -1;
-    if (virRegisterSecretDriver(&secret_driver) == -1) return -1;
-    if (virRegisterNWFilterDriver(&nwfilter_driver) == -1) return -1;
+    if (virRegisterDriver(&remote_driver) < 0)
+        return -1;
+    if (virRegisterNetworkDriver(&network_driver) < 0)
+        return -1;
+    if (virRegisterInterfaceDriver(&interface_driver) < 0)
+        return -1;
+    if (virRegisterStorageDriver(&storage_driver) < 0)
+        return -1;
+    if (virRegisterNodeDeviceDriver(&node_device_driver) < 0)
+        return -1;
+    if (virRegisterSecretDriver(&secret_driver) < 0)
+        return -1;
+    if (virRegisterNWFilterDriver(&nwfilter_driver) < 0)
+        return -1;
 #ifdef WITH_LIBVIRTD
-    if (virRegisterStateDriver(&state_driver) == -1) return -1;
+    if (virRegisterStateDriver(&state_driver) == -1) < 0)
+        return -1;
 #endif
 
     return 0;
diff --git a/src/secret/secret_driver.c b/src/secret/secret_driver.c
index 9f7f946..5cb6391 100644
--- a/src/secret/secret_driver.c
+++ b/src/secret/secret_driver.c
@@ -1194,7 +1194,9 @@ static virStateDriver stateDriver = {
 int
 secretRegister(void)
 {
-    virRegisterSecretDriver(&secretDriver);
-    virRegisterStateDriver(&stateDriver);
+    if (virRegisterSecretDriver(&secretDriver) < 0)
+        return -1;
+    if (virRegisterStateDriver(&stateDriver) < 0)
+        return -1;
     return 0;
 }
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index 7dbff6c..466ceba 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -2696,7 +2696,8 @@ int storageRegister(void)
 {
     if (virRegisterStorageDriver(&storageDriver) < 0)
         return -1;
-    virRegisterStateDriver(&stateDriver);
+    if (virRegisterStateDriver(&stateDriver) < 0)
+        return -1;
     return 0;
 }
 
diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c
index 3496e52..8ddf181 100644
--- a/src/uml/uml_driver.c
+++ b/src/uml/uml_driver.c
@@ -2909,7 +2909,9 @@ static virStateDriver umlStateDriver = {
 };
 
 int umlRegister(void) {
-    virRegisterDriver(&umlDriver);
-    virRegisterStateDriver(&umlStateDriver);
+    if (virRegisterDriver(&umlDriver) < 0)
+        return -1;
+    if (virRegisterStateDriver(&umlStateDriver) < 0)
+        return -1;
     return 0;
 }
-- 
1.8.3.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to