Failure on slug generation is now properly handled - fiche - A pastebin adjuste… | |
git clone git://vernunftzentrum.de/fiche.git | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
commit 319bd7327382ef9d21d1ff3d0a5be5ac4fed5a48 | |
parent 2c88f3c9907cb59e7a0d4af932e301117a423a0d | |
Author: solusipse <[email protected]> | |
Date: Sat, 2 Sep 2017 19:30:08 +0200 | |
Failure on slug generation is now properly handled | |
Diffstat: | |
fiche.c | 24 +++++++++++++++++++++++- | |
1 file changed, 23 insertions(+), 1 deletion(-) | |
--- | |
diff --git a/fiche.c b/fiche.c | |
@@ -590,6 +590,11 @@ static void *handle_connection(void *args) { | |
// with generated slug on disk | |
generate_slug(&slug, c->settings->slug_len, extra); | |
+ // Something went wrong in slug generation, break here | |
+ if (!slug) { | |
+ break; | |
+ } | |
+ | |
// Increment counter for additional letters needed | |
++extra; | |
@@ -611,6 +616,23 @@ static void *handle_connection(void *args) { | |
} | |
while(create_directory(c->settings->output_dir_path, slug) != 0); | |
+ | |
+ // Slug generation failed, we have to finish here | |
+ if (!slug) { | |
+ print_error("Couldn't generate a slug!"); | |
+ print_separator(); | |
+ | |
+ close(c->socket); | |
+ | |
+ // Cleanup | |
+ free(c); | |
+ free(slug); | |
+ pthread_exit(NULL); | |
+ return NULL; | |
+ } | |
+ | |
+ | |
+ // Save to file failed, we have to finish here | |
if ( save_to_file(buffer, c->settings->output_dir_path, slug) != 0 ) { | |
print_error("Couldn't save a file!"); | |
print_separator(); | |
@@ -671,7 +693,7 @@ static void generate_slug(char **output, uint8_t length, ui… | |
*output = calloc(length + 1 + extra_length, sizeof(char)); | |
if (*output == NULL) { | |
- // TODO | |
+ return; | |
} | |
// Take n-th symbol from symbol table and use it for slug generation |