diff --git a/source/camera.c b/source/camera.c index 221744c..460b01f 100644 --- a/source/camera.c +++ b/source/camera.c @@ -221,6 +221,7 @@ Result http_get(char *url, char *path) free(content_disposition); free(new_url); free(buf); + return ret; } char *filename; @@ -228,6 +229,13 @@ Result http_get(char *url, char *path) filename = strtok(NULL, "\""); char *illegal_characters = "\"?;:/\\+"; + if(!filename) + { + free(content_disposition); + free(new_url); + free(buf); + return -1; + } for (size_t i = 0; i < strlen(filename); i++) { for (size_t n = 0; n < strlen(illegal_characters); n++) @@ -250,6 +258,8 @@ Result http_get(char *url, char *path) if (buf == NULL) { httpcCloseContext(&context); + free(content_disposition); + free(new_url); free(last_buf); return ret; } @@ -261,6 +271,8 @@ Result http_get(char *url, char *path) if (buf == NULL) { httpcCloseContext(&context); + free(content_disposition); + free(new_url); free(last_buf); return -1; } @@ -276,5 +288,9 @@ Result http_get(char *url, char *path) exit_qr(); + free(content_disposition); + free(new_url); + free(buf); + return 0; }