Message ID | 171988117626.2007123.198416706338315744.stgit@frogsfrogsfrogs (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [01/13] xfs_scrub: use proper UChar string iterators | expand |
On Mon, Jul 01, 2024 at 05:57:39PM -0700, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > For code that wants to examine a UChar string, use libicu's string > iterators to walk UChar strings, instead of the open-coded U16_NEXT* > macros that perform no typechecking. I don't claim to understand libicu, but the code looks sane to me: Reviewed-by: Christoph Hellwig <hch@lst.de>
diff --git a/scrub/unicrash.c b/scrub/unicrash.c index dd30164354e3..02a1b94efb4d 100644 --- a/scrub/unicrash.c +++ b/scrub/unicrash.c @@ -330,13 +330,12 @@ name_entry_examine( struct name_entry *entry, unsigned int *badflags) { + UCharIterator uiter; UChar32 uchr; - int32_t i; uint8_t mask = 0; - for (i = 0; i < entry->normstrlen;) { - U16_NEXT_UNSAFE(entry->normstr, i, uchr); - + uiter_setString(&uiter, entry->normstr, entry->normstrlen); + while ((uchr = uiter_next32(&uiter)) != U_SENTINEL) { /* zero width character sequences */ switch (uchr) { case 0x200B: /* zero width space */