Thumbnail

rani/cscroll.git

Clone URL: https://git.buni.party/rani/cscroll.git

commit 4985b31411d135e228513bf4c2e4cc3dd1386990 Author: Raniconduh <clagv.randomgames@gmail.com> Date: Sun Jan 30 15:32:48 2022 +0000 fixed memory leaks and buffer overflows in hash.c, added stddef.h include in var.c 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"