]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
nwfilter: address more coverity findings
authorStefan Berger <stefanb@linux.vnet.ibm.com>
Thu, 26 Apr 2012 20:45:36 +0000 (16:45 -0400)
committerStefan Berger <stefanb@us.ibm.com>
Thu, 26 Apr 2012 20:45:36 +0000 (16:45 -0400)
This patch addresses the following coverity findings:

/libvirt/src/conf/nwfilter_params.c:390:
var_assigned: Assigning: "varValue" = null return value from "virHashLookup".

/libvirt/src/conf/nwfilter_params.c:392:
dereference: Dereferencing a pointer that might be null "varValue" when calling "virNWFilterVarValueGetNthValue".

/libvirt/src/conf/nwfilter_params.c:399:
dereference: Dereferencing a pointer that might be null "tmp" when calling "virNWFilterVarValueGetNthValue".

src/conf/nwfilter_params.c

index bf3f1c10d146c9e8fbd756fa06a857f4bd1617ae..79f780048553f5fd83de5579806d8ecad6ab37db 100644 (file)
@@ -30,7 +30,7 @@
 #include "datatypes.h"
 #include "nwfilter_params.h"
 #include "domain_conf.h"
-
+#include "logging.h"
 
 #define VIR_FROM_THIS VIR_FROM_NWFILTER
 
@@ -391,14 +391,28 @@ virNWFilterVarCombIterEntryAreUniqueEntries(virNWFilterVarCombIterEntryPtr cie,
     const char *value;
 
     varValue = virHashLookup(hash->hashTable, cie->varNames[0]);
+    if (!varValue) {
+        /* caller's error */
+        VIR_ERROR(_("hash lookup resulted in NULL pointer"));
+        return true;
+    }
 
     value = virNWFilterVarValueGetNthValue(varValue, cie->curValue);
+    if (!value) {
+        VIR_ERROR(_("Lookup of value at index %u resulted in a NULL "
+                  "pointer"), cie->curValue);
+        return true;
+    }
 
     for (i = 0; i < cie->curValue; i++) {
         if (STREQ(value, virNWFilterVarValueGetNthValue(varValue, i))) {
             bool isSame = true;
             for (j = 1; j < cie->nVarNames; j++) {
                 tmp = virHashLookup(hash->hashTable, cie->varNames[j]);
+                if (!tmp) {
+                    /* should never occur to step on a NULL here */
+                    return true;
+                }
                 if (!STREQ(virNWFilterVarValueGetNthValue(tmp, cie->curValue),
                            virNWFilterVarValueGetNthValue(tmp, i))) {
                     isSame = false;