diff --git a/src/articles_p/article.c b/src/articles_p/article.c index 06846fa..599013f 100644 --- a/src/articles_p/article.c +++ b/src/articles_p/article.c @@ -45,6 +45,8 @@ int list_articles(article_info **articles) else (*articles)[articles_amount - 1].title = strdup("No title"); + (*articles)[articles_amount - 1].content = malloc(0); + free(tmp); // printf("Found article \"%s\" posted on %ld\n", (*articles)[articles_amount - 1].time, (*articles)[articles_amount - 1].title); @@ -67,7 +69,7 @@ long get_article_contents(article_info *article) name = malloc(line_length); if (name == NULL) { - article->content = "500"; + article->content = strdup("500"); return -1; } @@ -78,7 +80,7 @@ long get_article_contents(article_info *article) char *path = malloc(line_length); if (path == NULL) { - article->content = "500"; + article->content = strdup("500"); return -1; } @@ -89,7 +91,7 @@ long get_article_contents(article_info *article) if (file == NULL) { perror("Couldn't open article file"); - article->content = "404"; + article->content = strdup("404"); return -1; } @@ -112,8 +114,8 @@ void free_article_info_arr(article_info **articles, int length) { for (int i = 0; i < length; i++) { - free((*articles)[i].content); free((*articles)[i].title); + free((*articles)[i].content); } free(*articles); diff --git a/src/articles_p/html.c b/src/articles_p/html.c index 5cb7b06..d49f86c 100644 --- a/src/articles_p/html.c +++ b/src/articles_p/html.c @@ -71,13 +71,13 @@ int gen_html_article_list(article_info *articles, int n, char **out) snprintf(insert, line_length, "
  • %s
  • \n", i, articles[i].title); strcat(*out, insert); + + free(insert); } *out = realloc(*out, strlen(*out) + strlen("") + 1); strcat(*out, ""); - free(insert); - return 0; } diff --git a/src/netw_op/request.c b/src/netw_op/request.c index f302e4a..4a311f9 100644 --- a/src/netw_op/request.c +++ b/src/netw_op/request.c @@ -187,6 +187,7 @@ void handle_get_request(int fd, char *request) fread(template, file_size, 1, fp); fclose(fp); + template[file_size-1] = '\0'; article_info *articles = malloc(0); int amount = list_articles(&articles);