commit 4985b31411d135e228513bf4c2e4cc3dd1386990
Author: Raniconduh <clagv.randomgames@gmail.com>
Date: Sun Jan 30 15:32:48 2022 +0000
diff --git a/src/hash.c b/src/hash.c
index 95f71e8..17d8530 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -677 +677 @@ void map_insert(map * m, char * k, void (*v)(void *)) {
if (m->length > 0 && m->arr[khash % m->length]) {
bucket_data * d = map_new_data();
- d->key = malloc(klen);
+ d->key = malloc(klen + 1);
strcpy(d->key, k);
d->value = v;
@@ -817 +817 @@ void map_insert(map * m, char * k, void (*v)(void *)) {
// need to create new bucket
bucket_data * d = map_new_data();
- d->key = malloc(klen);
+ d->key = malloc(klen + 1);
strcpy(d->key, k);
d->value = v;
@@ -1009 +10010 @@ void map_nuke(map * m) {
// loop over array
for (size_t i = 0; i < m->length; i++) {
if (!m->arr[i]) continue;
- // first free linked list
+ // first free keys and linked list
for (bucket_data * p = m->arr[i]->data; p;) {
bucket_data * tmp = p->next;
+ free(p->key);
free(p);
p = tmp;
}
diff --git a/src/var.c b/src/var.c
index fb3b2a1..7f1b855 100644
--- a/src/var.c
+++ b/src/var.c
@@ -14 +15 @@
#include <stdbool.h>
+#include <stddef.h>
#include "hash.h"
#include "opts.h"