From 53c0027b3c38a0a253d975747037507780833d3c Mon Sep 17 00:00:00 2001 From: solusipse Date: Sat, 2 Sep 2017 19:48:02 +0200 Subject: [PATCH] Extra checks, fixed cleanup in file generating routine --- fiche.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/fiche.c b/fiche.c index ef03ea9..f005816 100644 --- a/fiche.c +++ b/fiche.c @@ -705,6 +705,10 @@ static void generate_slug(char **output, uint8_t length, uint8_t extra_length) { static int create_directory(char *output_dir, char *slug) { + if (!slug) { + return -1; + } + // Additional byte is for the slash size_t len = strlen(output_dir) + strlen(slug) + 2; @@ -740,10 +744,13 @@ static int save_to_file(uint8_t *data, char *output_dir, char *slug) { // Attempt file saving FILE *f = fopen(path, "w"); if (!f) { + free(path); return -1; } if ( fprintf(f, "%s", data) < 0 ) { + fclose(f); + free(path); return -1; }