[PATCH 3/6] virConnectOpenInternal: Remove 'failed' label

Peter Krempa pkrempa at redhat.com
Thu Sep 8 15:15:57 UTC 2022


Jumping to the label would just return NULL.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/libvirt.c | 41 +++++++++++++++++++----------------------
 1 file changed, 19 insertions(+), 22 deletions(-)

diff --git a/src/libvirt.c b/src/libvirt.c
index fca38dba40..d5ae68d16f 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -892,7 +892,7 @@ virConnectOpenInternal(const char *name,
         return NULL;

     if (virConfLoadConfig(&conf, "libvirt.conf") < 0)
-        goto failed;
+        return NULL;

     if (name && name[0] == '\0')
         name = NULL;
@@ -916,14 +916,14 @@ virConnectOpenInternal(const char *name,
         uristr = g_strdup(name);
     } else {
         if (virConnectGetDefaultURI(conf, &uristr) < 0)
-            goto failed;
+            return NULL;

         if (uristr == NULL) {
             VIR_DEBUG("Trying to probe for default URI");
             for (i = 0; i < virConnectDriverTabCount && uristr == NULL; i++) {
                 if (virConnectDriverTab[i]->hypervisorDriver->connectURIProbe) {
                     if (virConnectDriverTab[i]->hypervisorDriver->connectURIProbe(&uristr) < 0)
-                        goto failed;
+                        return NULL;
                     VIR_DEBUG("%s driver URI probe returned '%s'",
                               virConnectDriverTab[i]->hypervisorDriver->name,
                               NULLSTR(uristr));
@@ -937,7 +937,7 @@ virConnectOpenInternal(const char *name,

         if (!(flags & VIR_CONNECT_NO_ALIASES) &&
             virURIResolveAlias(conf, uristr, &alias) < 0)
-            goto failed;
+            return NULL;

         if (alias) {
             g_free(uristr);
@@ -945,7 +945,7 @@ virConnectOpenInternal(const char *name,
         }

         if (!(ret->uri = virURIParse(uristr)))
-            goto failed;
+            return NULL;

         /* Avoid need for drivers to worry about NULLs, as
          * no one needs to distinguish "" vs NULL */
@@ -967,12 +967,12 @@ virConnectOpenInternal(const char *name,
             virReportError(VIR_ERR_NO_CONNECT,
                            _("URI '%s' does not include a driver name"),
                            name);
-            goto failed;
+            return NULL;
         }

         if (virConnectCheckURIMissingSlash(uristr,
                                            ret->uri) < 0) {
-            goto failed;
+            return NULL;
         }

         if (STREQ(ret->uri->path, "/embed")) {
@@ -985,26 +985,26 @@ virConnectOpenInternal(const char *name,
                 virReportError(VIR_ERR_NO_CONNECT,
                                _("URI scheme '%s' for embedded driver is not valid"),
                                ret->uri->scheme);
-                goto failed;
+                return NULL;
             }

             root = virURIGetParam(ret->uri, "root");
             if (!root)
-                goto failed;
+                return NULL;

             if (!g_path_is_absolute(root)) {
                 virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                                _("root path must be absolute"));
-                goto failed;
+                return NULL;
             }

             if (virEventRequireImpl() < 0)
-                goto failed;
+                return NULL;

             regMethod = g_strdup_printf("%sRegister", ret->uri->scheme);

             if (virDriverLoadModule(ret->uri->scheme, regMethod, false) < 0)
-                goto failed;
+                return NULL;

             if (virAccessManagerGetDefault() == NULL) {
                 virAccessManager *acl;
@@ -1012,12 +1012,12 @@ virConnectOpenInternal(const char *name,
                 virResetLastError();

                 if (!(acl = virAccessManagerNew("none")))
-                    goto failed;
+                    return NULL;
                 virAccessManagerSetDefault(acl);
             }

             if (virStateInitialize(geteuid() == 0, true, root, NULL, NULL) < 0)
-                goto failed;
+                return NULL;

             embed = true;
         }
@@ -1055,7 +1055,7 @@ virConnectOpenInternal(const char *name,
                                  __FILE__, __FUNCTION__, __LINE__,
                                  _("libvirt was built without the '%s' driver"),
                                  ret->uri->scheme);
-            goto failed;
+            return NULL;
         }

         VIR_DEBUG("trying driver %zu (%s) ...",
@@ -1105,13 +1105,13 @@ virConnectOpenInternal(const char *name,
             virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
                            _("Driver %s cannot be used in embedded mode"),
                            virConnectDriverTab[i]->hypervisorDriver->name);
-            goto failed;
+            return NULL;
         }
         /* before starting the new connection, check if the driver only works
          * with a server, and so return an error if the server is missing */
         if (virConnectDriverTab[i]->remoteOnly && ret->uri && !ret->uri->server) {
             virReportError(VIR_ERR_INVALID_ARG, "%s", _("URI is missing the server part"));
-            goto failed;
+            return NULL;
         }

         ret->driver = virConnectDriverTab[i]->hypervisorDriver;
@@ -1141,20 +1141,17 @@ virConnectOpenInternal(const char *name,
             ret->storageDriver = NULL;

             if (res == VIR_DRV_OPEN_ERROR)
-                goto failed;
+                return NULL;
         }
     }

     if (!ret->driver) {
         /* If we reach here, then all drivers declined the connection. */
         virReportError(VIR_ERR_NO_CONNECT, "%s", NULLSTR(name));
-        goto failed;
+        return NULL;
     }

     return g_steal_pointer(&ret);
-
- failed:
-    return NULL;
 }


-- 
2.37.1



More information about the libvir-list mailing list