From: Victor Julien Date: Fri, 4 Oct 2019 13:48:23 +0000 (+0200) Subject: datasets: fix error handling X-Git-Tag: suricata-5.0.0~92 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=914c5b7975753e62b0de42cc238437cb5ff43c52;p=thirdparty%2Fsuricata.git datasets: fix error handling --- diff --git a/src/datasets.c b/src/datasets.c index 5b74b32b9b..315e801e65 100644 --- a/src/datasets.c +++ b/src/datasets.c @@ -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; } }