]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
datasets: fix error handling
authorVictor Julien <victor@inliniac.net>
Fri, 4 Oct 2019 13:48:23 +0000 (15:48 +0200)
committerVictor Julien <victor@inliniac.net>
Fri, 4 Oct 2019 13:48:23 +0000 (15:48 +0200)
src/datasets.c

index 5b74b32b9b8f8dd07032325ebef841628f0946fb..315e801e65eb963c17163e1d32d0ff1272643e46 100644 (file)
@@ -418,7 +418,8 @@ Dataset *DatasetGet(const char *name, enum DatasetTypes type,
             SCLogError(SC_ERR_DATASET, "dataset %s already "
                     "exists and is of type %u",
                 set->name, set->type);
-            goto out_err;
+            SCMutexUnlock(&sets_lock);
+            return NULL;
         }
 
         if ((save == NULL || strlen(save) == 0) &&
@@ -430,13 +431,15 @@ Dataset *DatasetGet(const char *name, enum DatasetTypes type,
                     (save != NULL && strcmp(set->save, save) != 0)) {
                 SCLogError(SC_ERR_DATASET, "dataset %s save mismatch: %s != %s",
                         set->name, set->save, save);
-                goto out_err;
+                SCMutexUnlock(&sets_lock);
+                return NULL;
             }
             if ((load == NULL && strlen(set->load) > 0) ||
                     (load != NULL && strcmp(set->load, load) != 0)) {
                 SCLogError(SC_ERR_DATASET, "dataset %s load mismatch: %s != %s",
                         set->name, set->load, load);
-                goto out_err;
+                SCMutexUnlock(&sets_lock);
+                return NULL;
             }
         }