Re: Fwd: report 1/3: buffer under-read in rfc2047.c lwslen()
Alejandro Colomar via Mutt-dev <[email protected]> Sat, 20 Jun 2026 22:48:38 +0200
| Newsgroups | gmane.mail.mutt.devel |
|---|---|
| Message-ID | <ajb8E08SKtRDczYb@devuan> |
Hi Vincent,
On 2026-06-20T19:39:29+0200, Vincent Lefevre wrote:
> On 2026-06-18 11:28:00 +0800, Kevin J. McCarthy wrote:
> > In this case, I think the proposed patch is the best solution:
> >
> > diff --git a/rfc2047.c b/rfc2047.c
> > index d72ae997..2bdd8553 100644
> > --- a/rfc2047.c
> > +++ b/rfc2047.c
> > @@ -815,7 +815,7 @@ static size_t lwslen(const char *s, size_t n)
> > len = (size_t)(p - s);
> > break;
> > }
> > - if (strchr("\r\n", *(p-1))) /* LWS doesn't end with CRLF */
> > + if (len > 0 && strchr("\r\n", *(p-1))) /* LWS doesn't end with CRLF */
> > len = (size_t)0;
> > return len;
> > }
>
> "len = (size_t)0;" has a cast, but "len > 0" doesn't.
> This doesn't matter much, but this is not consistent.
Comparison with a literal should not use casts. The few false-positive
diagnostics that can happen are compiler bugs.
See <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119011>.
Let's not add more superfluous casts (but we don't need to remove the
existing ones).
Have a lovely night!
Alex
--
<https://www.alejandro-colomar.es>
signature.asc
(application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEES7Jt9u9GbmlWADAi64mZXMKQwqkFAmo2/J8ACgkQ64mZXMKQ wqkfaw//VkmF4x2h/qA+/lF61onNPdP0/9BJjxfMyzO4AiDVws1u9Hg7zpZjDToi B5rnDT94fhQnTYIUjDjTtUqpYEdWL8MjgnswfhUANDdFRhbYIQJ+UgxmY2mF0mGu PHoSYMLGtiCY3cXFyacH0jwvPbBue+2aKyvprNB5celQf7w40bd5Avn2cWJnt9pi FH8mrVvsoaiaA6E4jjypixXPk8NNAyOy/gh+MI/6vtdW61cVPZtjDWfcdCbPchAN p/eVyRE1heyevAQ59NhzOZoU7bSX8KgM4PYOqYTfE23KvwTTKVKL3jKEdKT5F4l8 C1bcG7Jh2gtm4EJISE4H66ynKmqmXhbMP7ArZXVVqWUkXx6tV2I5BGj0ONXFlsgD T2i8wfSDz98FjCosviY9WK13VnYwY38pSRBn+23bK+rA9FMjh7Qm7OvALGFn161x gRUpbdvQD36ozV4XYofmxBRxd42WMvZKsyJrSFy1LjFaVycUb7tSuKGo4BD1LaxW m4GzxUsnW5Y4IP2rloHfxDiOAxzPn9NDBO/2EuXhChAyvbqyfvmlJqg7sstfUMrQ gTiCNjo2psQ4e9ZjQX/K9pPJ1xyYPxgGgdfdawg9N/NSq6n+RVLe3AmzBwgKUzjN T0kEmkpEsb5fcaQJlzKEfPehJg02tSjX/xBlTWKff1FMoYdZ+sA= =y8Sj -----END PGP SIGNATURE-----