On 8/1/19 5:00 PM, Daniel P. Berrangé wrote:
>
>

Very nice cleanup, which also makes NSS library smaller in size (I mean those .so.2 files).

I've found some mem leaks and mis-alignments, though. Please squash this into respective patches:

diff --git a/tools/nss/libvirt_nss.c b/tools/nss/libvirt_nss.c
index a9814cf0dc..7122065b28 100644
--- a/tools/nss/libvirt_nss.c
+++ b/tools/nss/libvirt_nss.c
@@ -527,7 +527,7 @@ aiforaf(const char *name, int af, struct addrinfo *pai, struct addrinfo **aip)

         (*aip)->ai_next = res0;
         while ((*aip)->ai_next)
-           *aip = (*aip)->ai_next;
+            *aip = (*aip)->ai_next;

         addrList++;
     }
diff --git a/tools/nss/libvirt_nss_leases.c b/tools/nss/libvirt_nss_leases.c
index ddd50288d2..48a54d5841 100644
--- a/tools/nss/libvirt_nss_leases.c
+++ b/tools/nss/libvirt_nss_leases.c
@@ -108,7 +108,7 @@ appendAddr(const char *name ATTRIBUTE_UNUSED,
         return 0;
     }

-     if (af != AF_UNSPEC && af != family) {
+    if (af != AF_UNSPEC && af != family) {
DEBUG("Skipping address which family is %d, %d requested", family, af);
         return 0;
     }
@@ -374,7 +374,7 @@ findLeases(const char *file,
         .addrs = addrs,
         .naddrs = naddrs,
     };
-    yajl_handle parser;
+    yajl_handle parser = NULL;
     char line[1024];
     int rv;

@@ -419,6 +419,7 @@ findLeases(const char *file,
         *addrs = NULL;
         *naddrs = 0;
     }
+    yajl_free(parser);
     free(parserState.entry.ipaddr);
     free(parserState.entry.macaddr);
     free(parserState.entry.hostname);
diff --git a/tools/nss/libvirt_nss_macs.c b/tools/nss/libvirt_nss_macs.c
index 9fe5b83e86..fb5526bd7b 100644
--- a/tools/nss/libvirt_nss_macs.c
+++ b/tools/nss/libvirt_nss_macs.c
@@ -55,8 +55,8 @@ typedef struct {

 static int
 findMACsParserString(void *ctx,
-                    const unsigned char *stringVal,
-                    size_t stringLen)
+                     const unsigned char *stringVal,
+                     size_t stringLen)
 {
     findMACsParser *parser = ctx;

@@ -70,6 +70,7 @@ findMACsParserString(void *ctx,
         if (STRNEQ(parser->key, "domain"))
             return 0;

+        free(parser->entry.name);
         if (!(parser->entry.name = strndup((char *)stringVal, stringLen)))
             return 0;
     } else if (parser->state == FIND_MACS_STATE_ENTRY_MACS) {
@@ -93,8 +94,8 @@ findMACsParserString(void *ctx,

 static int
 findMACsParserMapKey(void *ctx,
-                    const unsigned char *stringVal,
-                    size_t stringLen)
+                     const unsigned char *stringVal,
+                     size_t stringLen)
 {
     findMACsParser *parser = ctx;

@@ -226,7 +227,7 @@ findMACs(const char *file,
         .macs = macs,
         .nmacs = nmacs,
     };
-    yajl_handle parser;
+    yajl_handle parser = NULL;
     char line[1024];
     size_t i;
     int rv;
@@ -276,6 +277,7 @@ findMACs(const char *file,
         *macs = NULL;
         *nmacs = 0;
     }
+    yajl_free(parser);
     for (i = 0; i < parserState.entry.nmacs; i++)
         free(parserState.entry.macs[i]);
     free(parserState.entry.macs);



With that:

Reviewed-by: Michal Privoznik <mpriv...@redhat.com>

Michal

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

Reply via email to