Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20261111134851.GC5716@brightrain.aerifal.cx>
Date: Wed, 11 Nov 2026 08:48:52 -0500
From: Rich Felker <dalias@...c.org>
To: Trevor Gross <tg@...vorgross.com>
Cc: musl@...ts.openwall.com
Subject: Re: Possible out of bounds read in memchr

On Wed, Nov 11, 2026 at 08:41:43AM -0500, Rich Felker wrote:
> On Wed, Nov 11, 2026 at 01:20:12PM +0000, Trevor Gross wrote:
> > Hello,
> > 
> > The C spec for `memchr` states:
> > 
> > > The memchr generic function locates the first occurrence of c
> > > (converted to an unsigned char) in the initial n characters (each
> > > interpreted as unsigned char) of the object pointed to by s. The
> > > implementation shall behave as if it reads the characters sequentially
> > > and stops as soon as a matching character is found.
> > 
> > The last bit implies that the provided length parameter is allowed to
> > exceed the actual length of the buffer and the implementation must not
> > read out of bounds. However, if I'm reading correctly, it appears that
> > there is a `size_t`-sized read of `w` at [1], which may be partially out
> > of bounds if the needle exists early in that word. Sample:
> > 
> >     int len = 2;
> >     char *s = malloc(len);
> >     memset(s, 0, len);
> >     s[1] = 1;
> >     r = memchr(s, 1, 1024);
> > 
> > AddressSanitizer corroborates the issue, see [2].
> > 
> > Sending to the public list because this is unlikely to be problematic
> > and already has some public discussion (Rust Zulip).
> 
> This is known and intentional. It would be nice if we had a way to
> express the intent, like a variant of the may_alias attribute, but i
> think we'd have to write a load in inline asm to make this formally
> correct. I'm open to changing it, because I don't like having the
> kinds of hacks this is now, but I'm not sure what's best.

Also FYI I CC'd you on the reply but your mail system is refusing
mail. If you'd like to get replies please fix that.

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.