fix(hmp): prevent crash when passing anything non-existent to hmp funcs
This commit is contained in:
12
ds.c
12
ds.c
@@ -171,6 +171,10 @@ ds_hmp_t
|
|||||||
{
|
{
|
||||||
ds_hmp_t *hmp;
|
ds_hmp_t *hmp;
|
||||||
|
|
||||||
|
if (!data_len) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
hmp = calloc(1, sizeof(ds_hmp_t));
|
hmp = calloc(1, sizeof(ds_hmp_t));
|
||||||
hmp->data_len = data_len;
|
hmp->data_len = data_len;
|
||||||
hmp->data = calloc(data_len, sizeof(ds_sll_t **));
|
hmp->data = calloc(data_len, sizeof(ds_sll_t **));
|
||||||
@@ -255,6 +259,10 @@ void
|
|||||||
ds_sll_t *cur, *ll;
|
ds_sll_t *cur, *ll;
|
||||||
unsigned hash_pos;
|
unsigned hash_pos;
|
||||||
|
|
||||||
|
if (!hmp || !key) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
hash_pos = _ds_hmp_gen_hash(key) % hmp->data_len;
|
hash_pos = _ds_hmp_gen_hash(key) % hmp->data_len;
|
||||||
ll = hmp->data[hash_pos];
|
ll = hmp->data[hash_pos];
|
||||||
if (!ll) {
|
if (!ll) {
|
||||||
@@ -279,6 +287,10 @@ void
|
|||||||
ds_sll_t *ll, *cur;
|
ds_sll_t *ll, *cur;
|
||||||
_ds_hmp_kv_t *kv;
|
_ds_hmp_kv_t *kv;
|
||||||
|
|
||||||
|
if (!hmp || !key) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
hash_pos = _ds_hmp_gen_hash(key) % hmp->data_len;
|
hash_pos = _ds_hmp_gen_hash(key) % hmp->data_len;
|
||||||
ll = hmp->data[hash_pos];
|
ll = hmp->data[hash_pos];
|
||||||
if (!ll) {
|
if (!ll) {
|
||||||
|
Reference in New Issue
Block a user