Re: Fwd: report 3/3: latent unterminated buffer in imap_wordcasecmp()
Kurt Hackenberg <[email protected]> Fri, 19 Jun 2026 01:29:21 -0400
| Newsgroups | gmane.mail.mutt.devel |
|---|---|
| Message-ID | <[email protected]> |
On Fri, Jun 19, 2026 at 13:02 +0800, Kevin J. McCarthy wrote: >However, this "utility" function is pretty lousy, and as Ian mentions >I can't think of any reason to copy b over to a tmp[] array. Agreed. >If we're going to rewrite it, why don't we just compute length of a, >grab the strcpn() retval as length of b, and if they match then just >use ascii_strncmp()? That ought to work. First thing I thought of was to combine everything in a single loop: caseless compare of a pair of characters, with a terminated by NUL, and b terminated by either NUL or whitespace. (Also, this function doesn't have to return strcmp()-style < == or >; can just return boolean, match or not.) Is there some reason not to code a caseless compare of two characters in this function? Some reason we have to use ascii_strncmp() or whatever?