From: WanBingjiang Date: Tue, 17 Mar 2026 02:19:08 +0000 (+0800) Subject: mbsalign: validate ESC character before processing escape sequences X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=4d28a8c89772dd1668eec8511c823aed16331f74;p=thirdparty%2Futil-linux.git mbsalign: validate ESC character before processing escape sequences Only process escape sequences when the control character is ESC. This prevents \n[ or \n( from being misidentified as escape sequences. Signed-off-by: WanBingjiang --- diff --git a/lib/mbsalign.c b/lib/mbsalign.c index 97627537f..3e79ad10b 100644 --- a/lib/mbsalign.c +++ b/lib/mbsalign.c @@ -43,8 +43,13 @@ size_t mbs_nwidth(const char *buf, size_t bufsz) while (p && *p && p <= last) { if (iscntrl((unsigned char) *p)) { + char ctrl_char = *p; p++; + /* only process escape sequences if the control char is ESC */ + if (ctrl_char != '\e') + continue; + /* try detect "\e[x;ym" and skip on success */ if (*p && *p == '[') { const char *e = p;