Fixed memory leaks
This commit is contained in:
parent
4709313543
commit
c818a029e4
@ -45,6 +45,8 @@ int list_articles(article_info **articles)
|
|||||||
else
|
else
|
||||||
(*articles)[articles_amount - 1].title = strdup("No title");
|
(*articles)[articles_amount - 1].title = strdup("No title");
|
||||||
|
|
||||||
|
(*articles)[articles_amount - 1].content = malloc(0);
|
||||||
|
|
||||||
free(tmp);
|
free(tmp);
|
||||||
|
|
||||||
// printf("Found article \"%s\" posted on %ld\n", (*articles)[articles_amount - 1].time, (*articles)[articles_amount - 1].title);
|
// 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);
|
name = malloc(line_length);
|
||||||
if (name == NULL)
|
if (name == NULL)
|
||||||
{
|
{
|
||||||
article->content = "500";
|
article->content = strdup("500");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,7 +80,7 @@ long get_article_contents(article_info *article)
|
|||||||
char *path = malloc(line_length);
|
char *path = malloc(line_length);
|
||||||
if (path == NULL)
|
if (path == NULL)
|
||||||
{
|
{
|
||||||
article->content = "500";
|
article->content = strdup("500");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,7 +91,7 @@ long get_article_contents(article_info *article)
|
|||||||
if (file == NULL)
|
if (file == NULL)
|
||||||
{
|
{
|
||||||
perror("Couldn't open article file");
|
perror("Couldn't open article file");
|
||||||
article->content = "404";
|
article->content = strdup("404");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,8 +114,8 @@ void free_article_info_arr(article_info **articles, int length)
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < length; i++)
|
for (int i = 0; i < length; i++)
|
||||||
{
|
{
|
||||||
free((*articles)[i].content);
|
|
||||||
free((*articles)[i].title);
|
free((*articles)[i].title);
|
||||||
|
free((*articles)[i].content);
|
||||||
}
|
}
|
||||||
|
|
||||||
free(*articles);
|
free(*articles);
|
||||||
|
@ -71,13 +71,13 @@ int gen_html_article_list(article_info *articles, int n, char **out)
|
|||||||
snprintf(insert, line_length, "<li><a href=\"/article/%d\" >%s</a></li>\n", i, articles[i].title);
|
snprintf(insert, line_length, "<li><a href=\"/article/%d\" >%s</a></li>\n", i, articles[i].title);
|
||||||
|
|
||||||
strcat(*out, insert);
|
strcat(*out, insert);
|
||||||
|
|
||||||
|
free(insert);
|
||||||
}
|
}
|
||||||
|
|
||||||
*out = realloc(*out, strlen(*out) + strlen("</ul>") + 1);
|
*out = realloc(*out, strlen(*out) + strlen("</ul>") + 1);
|
||||||
strcat(*out, "</ul>");
|
strcat(*out, "</ul>");
|
||||||
|
|
||||||
free(insert);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -187,6 +187,7 @@ void handle_get_request(int fd, char *request)
|
|||||||
|
|
||||||
fread(template, file_size, 1, fp);
|
fread(template, file_size, 1, fp);
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
template[file_size-1] = '\0';
|
||||||
|
|
||||||
article_info *articles = malloc(0);
|
article_info *articles = malloc(0);
|
||||||
int amount = list_articles(&articles);
|
int amount = list_articles(&articles);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user