-/* Copyright (C) 2017-2019 Open Information Security Foundation
+/* Copyright (C) 2017-2020 Open Information Security Foundation
*
* You can copy, redistribute or modify this Program under the terms of
* the GNU General Public License version 2 as published by the Free
static int DatasetAddwRep(Dataset *set, const uint8_t *data, const uint32_t data_len,
DataRepType *rep);
+static inline void DatasetUnlockData(THashData *d)
+{
+ (void) THashDecrUsecnt(d);
+ THashDataUnlock(d);
+}
+
enum DatasetTypes DatasetGetTypeFromString(const char *s)
{
if (strcasecmp("md5", s) == 0)
StringType *found = rdata->data;
rrep.found = true;
rrep.rep = found->rep;
- THashDataUnlock(rdata);
+ DatasetUnlockData(rdata);
return rrep;
}
return rrep;
memcpy(lookup.md5, data, data_len);
THashData *rdata = THashLookupFromHash(set->hash, &lookup);
if (rdata) {
- THashDataUnlock(rdata);
+ DatasetUnlockData(rdata);
return 1;
}
return 0;
Md5Type *found = rdata->data;
rrep.found = true;
rrep.rep = found->rep;
- THashDataUnlock(rdata);
+ DatasetUnlockData(rdata);
return rrep;
}
return rrep;
memcpy(lookup.sha256, data, data_len);
THashData *rdata = THashLookupFromHash(set->hash, &lookup);
if (rdata) {
- THashDataUnlock(rdata);
+ DatasetUnlockData(rdata);
return 1;
}
return 0;
Sha256Type *found = rdata->data;
rrep.found = true;
rrep.rep = found->rep;
- THashDataUnlock(rdata);
+ DatasetUnlockData(rdata);
return rrep;
}
return rrep;
.rep.value = 0 };
struct THashDataGetResult res = THashGetFromHash(set->hash, &lookup);
if (res.data) {
- THashDataUnlock(res.data);
+ DatasetUnlockData(res.data);
return res.is_new ? 1 : 0;
}
return -1;
.rep = *rep };
struct THashDataGetResult res = THashGetFromHash(set->hash, &lookup);
if (res.data) {
- THashDataUnlock(res.data);
+ DatasetUnlockData(res.data);
return res.is_new ? 1 : 0;
}
return -1;
memcpy(lookup.md5, data, 16);
struct THashDataGetResult res = THashGetFromHash(set->hash, &lookup);
if (res.data) {
- THashDataUnlock(res.data);
+ DatasetUnlockData(res.data);
return res.is_new ? 1 : 0;
}
return -1;
memcpy(lookup.md5, data, 16);
struct THashDataGetResult res = THashGetFromHash(set->hash, &lookup);
if (res.data) {
- THashDataUnlock(res.data);
+ DatasetUnlockData(res.data);
return res.is_new ? 1 : 0;
}
return -1;
memcpy(lookup.sha256, data, 32);
struct THashDataGetResult res = THashGetFromHash(set->hash, &lookup);
if (res.data) {
- THashDataUnlock(res.data);
+ DatasetUnlockData(res.data);
return res.is_new ? 1 : 0;
}
return -1;
memcpy(lookup.sha256, data, 32);
struct THashDataGetResult res = THashGetFromHash(set->hash, &lookup);
if (res.data) {
- THashDataUnlock(res.data);
+ DatasetUnlockData(res.data);
return res.is_new ? 1 : 0;
}
return -1;