From d4dc0325997224dedd1b7d3a39bfda20b8de3944 Mon Sep 17 00:00:00 2001 From: nicm Date: Sun, 20 Sep 2026 08:11:00 +0000 Subject: [PATCH] Do not loop forever if someone tries to give WCHAR_MAX a width, GitHub issue 5602. --- utf8.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/utf8.c b/utf8.c index 076b1ff56..c36b4e4b2 100644 --- a/utf8.c +++ b/utf8.c @@ -1,4 +1,4 @@ -/* $OpenBSD: utf8.c,v 1.72 2026/09/01 12:49:49 nicm Exp $ */ +/* $OpenBSD: utf8.c,v 1.73 2026/09/20 08:11:00 nicm Exp $ */ /* * Copyright (c) 2008 Nicholas Marriott @@ -373,8 +373,13 @@ utf8_add_to_width_cache(const char *s) wc_end = wc_start; } - for (wc = wc_start; wc <= wc_end; wc++) + wc = wc_start; + for (;;) { utf8_insert_width_cache(wc, width); + if (wc == wc_end) + break; + wc++; + } } else { utf8_no_width = 1; ud = utf8_fromcstr(copy);