From e3a798740c2d64d0ac0dd4a08ebfec9d5a1c3cf8 Mon Sep 17 00:00:00 2001 From: amelia squires Date: Sat, 27 Sep 2025 04:11:49 -0500 Subject: leaks and memory fixes --- src/net/util.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/net') diff --git a/src/net/util.c b/src/net/util.c index 78e3043..61cf1b7 100644 --- a/src/net/util.c +++ b/src/net/util.c @@ -341,7 +341,7 @@ int match_param(char* path, char* match, parray_t* arr){ case GET_KEY: if(path[pi] == '}'){ step = GET_VALUE; - name = calloc(pi - start, sizeof * name); + name = calloc(pi - start + 1, sizeof * name); memcpy(name, path + start + 1, pi - start - 1); start = mi; } @@ -352,7 +352,7 @@ int match_param(char* path, char* match, parray_t* arr){ if(match[mi] == '/'){ step = NORMAL; - char* out = calloc(mi - start, sizeof * out); + char* out = calloc(mi - start + 1, sizeof * out); memcpy(out, match + start, mi - start); parray_set(arr, name, out); free(name); @@ -410,6 +410,7 @@ uint64_t _mimetypes_len = 15; void parse_mimetypes(){ if(_mimetypes == NULL || _mimetypes_len == 0) return; + if(mime_type != NULL) return; mime_type = map_init(); FILE* fp = fopen(_mimetypes, "r"); @@ -436,9 +437,10 @@ void parse_mimetypes(){ if(line[i] == ' ' || line[i] == '\t' || line[i] == '\n'){ if(type_len == 0) continue; char* mtype_c = calloc(1024, sizeof * mtype); - strcpy(mtype_c, mtype); + mtype_c = strcpy(mtype_c, mtype); map_set(&mime_type, type, mtype_c); type_len = 0; + free(type); type = calloc(512, sizeof * type); } else { type[type_len] = line[i]; @@ -449,10 +451,12 @@ void parse_mimetypes(){ free(type); } + free(line); fclose(fp); } void _parse_mimetypes(){ + abort(); mime_type = map_init(); FILE* fp = fopen(MIMETYPES, "r"); char* buffer = calloc(1024, sizeof * buffer); -- cgit v1.2.3