nss: avoid leaking allocate memory
authorPavel Šimerda <psimerda@redhat.com>
Thu, 17 Sep 2015 20:34:19 +0000 (22:34 +0200)
committerPavel Šimerda <psimerda@redhat.com>
Thu, 17 Sep 2015 20:47:09 +0000 (22:47 +0200)
backends/nss.c

index e1b6dd6622940c30293485ed518d6a9d6ed35da7..2a37569b70821da4341bb7ba515707c2616aa2ed 100644 (file)
@@ -123,7 +123,7 @@ initialize(struct priv_nss *priv, netresolve_query_t query, char **settings)
 
        if (!settings || !*settings) {
                error("missing argument");
-               return;
+               goto out;
        }
 
        /* parse settings */
@@ -148,7 +148,7 @@ initialize(struct priv_nss *priv, netresolve_query_t query, char **settings)
        priv->dl_handle = dlopen(priv->filename, RTLD_LAZY);
        if (!priv->dl_handle) {
                error("%s", dlerror());
-               return;
+               goto out;
        }
 
        /* find nsswitch entry points */
@@ -158,6 +158,7 @@ initialize(struct priv_nss *priv, netresolve_query_t query, char **settings)
        try_symbol_pattern(query, priv, (void *) &priv->gethostbyname4_r, "_nss_%s_gethostbyname4_r", "gethostbyname4");
        try_symbol_pattern(query, priv, (void *) &priv->getaddrinfo, "_nss_%s_getaddrinfo", "getaddrinfo");
 
+out:
        free(priv->name);
        priv->name = NULL;
        free(priv->filename);
This page took 0.063735 seconds and 5 git commands to generate.