From a46c4443e352d9eada02670125ea5f028559be21 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Wed, 30 Jun 2021 12:27:11 +0200 Subject: 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. --- src/omemo/omemo.c | 1 + src/tools/aesgcm_download.c | 1 + 2 files changed, 2 insertions(+) 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); -- cgit 1.4.1-2-gfad0