From 95719e342df89cf5c9e0c5f14994c6b681905dd6 Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 29 Jun 2026 16:44:06 +0000 Subject: [PATCH] Limit hyperlink URIs to 1024 bytes which seems enough and allows us not to have to worry about gigantic URIs in styles, part of a change from Moritz Angermann. --- hyperlinks.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/hyperlinks.c b/hyperlinks.c index c8fd0ca2f..a71827272 100644 --- a/hyperlinks.c +++ b/hyperlinks.c @@ -42,6 +42,7 @@ */ #define MAX_HYPERLINKS 5000 +#define MAX_HYPERLINK_URI 1024 static long long hyperlinks_next_external_id = 1; static u_int global_hyperlinks_count; @@ -146,9 +147,13 @@ hyperlinks_put(struct hyperlinks *hl, const char *uri_in, internal_id_in = ""; utf8_stravis(&uri, uri_in, VIS_OCTAL|VIS_CSTYLE); - utf8_stravis(&internal_id, internal_id_in, VIS_OCTAL|VIS_CSTYLE); + if (strlen(uri) > MAX_HYPERLINK_URI) { + free(uri); + return (0); + } - if (*internal_id_in != '\0') { + utf8_stravis(&internal_id, internal_id_in, VIS_OCTAL|VIS_CSTYLE); + if (*internal_id != '\0') { find.uri = uri; find.internal_id = internal_id;