cgmnlm

Unnamed repository; edit this file 'description' to name the repository.
git clone git://code.clttr.info/cgmnlm.git
Log | Files | Refs | README | LICENSE

commit 100759a7d796f4e486a89b65b3ca491c1141056f
parent 8cac260a4b7c0b4df4d1229a5e41e64c3a687173
Author: René Wagner <rwagner@rw-net.de>
Date:   Tue, 23 Feb 2021 07:56:32 +0100

fix display of message on TOFU_FINGERPRINT_MISMATCH

Previously the message was never displayed to users
leaving them with a simple "Error: certificate is untrusted".

This also fixes the display of line numbers in the message.

Diffstat:
Msrc/gmnlm.c | 2+-
Msrc/tofu.c | 3+++
2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/gmnlm.c b/src/gmnlm.c @@ -1106,7 +1106,7 @@ tofu_callback(enum tofu_error error, const char *fingerprint, free(host); break; case TOFU_FINGERPRINT_MISMATCH: - snprintf(prompt, sizeof(prompt), + fprintf(browser->tty, "The certificate offered by this server DOES NOT MATCH the one we have on file.\n" "/!\\ Someone may be eavesdropping on or manipulating this connection. /!\\\n" "The unknown certificate's fingerprint is:\n" diff --git a/src/tofu.c b/src/tofu.c @@ -188,6 +188,7 @@ gemini_tofu_init(struct gemini_tofu *tofu, return; } n = 0; + int lineno = 1; char *line = NULL; while (getline(&line, &n, f) != -1) { struct known_host *host = calloc(1, sizeof(struct known_host)); @@ -211,6 +212,8 @@ gemini_tofu_init(struct gemini_tofu *tofu, assert(tok); host->expires = strtoul(tok, NULL, 10); + host->lineno = lineno++; + host->next = tofu->known_hosts; tofu->known_hosts = host; }