Failure on slug generation is now properly handled - fiche - A pastebin adjusted for gopher use
(HTM) git clone git://vernunftzentrum.de/fiche.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
(DIR) commit 319bd7327382ef9d21d1ff3d0a5be5ac4fed5a48
(DIR) parent 2c88f3c9907cb59e7a0d4af932e301117a423a0d
(HTM) Author: solusipse <solus1ps3@gmail.com>
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(-)
---
(DIR) 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, uint8_t extra_length) {
*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