about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorMichael Vetter <jubalh@iodoru.org>2021-06-30 12:27:11 +0200
committerMichael Vetter <jubalh@iodoru.org>2021-06-30 12:27:11 +0200
commita46c4443e352d9eada02670125ea5f028559be21 (patch)
tree08fb65f25637802d222c9812875c68ca285bdbf0
parentf30a9e125649b4a7623845d520bdb40ef39dfd8f (diff)
downloadprofani-tty-a46c4443e352d9eada02670125ea5f028559be21.tar.gz
Fix segfault when aesgcm url isn't the expected size
Fixes the bug mentioned in
https://github.com/profanity-im/profanity/issues/1478#issuecomment-794161606

The rest of https://github.com/profanity-im/profanity/issues/1478 I
can't reproduce. Seems to work fine.
-rw-r--r--src/omemo/omemo.c1
-rw-r--r--src/tools/aesgcm_download.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/src/omemo/omemo.c b/src/omemo/omemo.c
index b0d2d8aa..560a3473 100644
--- a/src/omemo/omemo.c
+++ b/src/omemo/omemo.c
@@ -1862,6 +1862,7 @@ omemo_parse_aesgcm_url(const char* aesgcm_url,
     }
 
     if (strlen(*fragment) != AESGCM_URL_NONCE_LEN + AESGCM_URL_KEY_LEN) {
+        ret = 1;
         goto out;
     }
 
diff --git a/src/tools/aesgcm_download.c b/src/tools/aesgcm_download.c
index 864da6b7..45aa7b66 100644
--- a/src/tools/aesgcm_download.c
+++ b/src/tools/aesgcm_download.c
@@ -70,6 +70,7 @@ aesgcm_file_get(void* userdata)
     // Convert the aesgcm:// URL to a https:// URL and extract the encoded key
     // and tag stored in the URL fragment.
     if (omemo_parse_aesgcm_url(aesgcm_dl->url, &https_url, &fragment) != 0) {
+        cons_show_error("Download failed: Cannot parse URL '%s'.", aesgcm_dl->url);
         http_print_transfer_update(aesgcm_dl->window, aesgcm_dl->url,
                                    "Download failed: Cannot parse URL '%s'.",
                                    aesgcm_dl->url);