# HG changeset patch # User Jim Meyering # Date 976300298 0 # Node ID f37a719abeac687f30909fb389d1934668267675 # Parent a7d1b4f477087e8910a059d841d53ac9dc7000b1 (mbsnwidth): Don't loop endlessly when called with an invalid mulitbyte sequence and with the MBSW_ACCEPT_INVALID flag set. diff --git a/lib/mbswidth.c b/lib/mbswidth.c --- a/lib/mbswidth.c +++ b/lib/mbswidth.c @@ -153,7 +153,11 @@ /* An invalid multibyte sequence was encountered. */ { if (flags & MBSW_ACCEPT_INVALID) - break; + { + p++; + width++; + break; + } else return -1; } @@ -162,7 +166,11 @@ /* An incomplete multibyte character at the end. */ { if (flags & MBSW_ACCEPT_INVALID) - break; + { + p = plimit; + width++; + break; + } else return -1; }