Re: sed in CURRENT fails in textproc/jq
- In reply to: Warner Losh : "Re: sed in CURRENT fails in textproc/jq"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 10 Sep 2023 16:41:23 UTC
Warner Losh <imp@bsdimp.com> writes:
> As for memchr, https://pubs.opengroup.org/onlinepubs/009696799/functions/memchr.html
> has no such permission to examine 'the entire buffer at once' nor any restirction
> as to the length extending beyond the address space. I'm skeptical of your reading
> that it allows one to examine all of [b, b + len), so please explain where the standard
> supports reading past the first occurance.
C11 says:
(7.24.4.1 §2) The memcmp function compares the first n characters of
the object pointed to by s1 to the first n characters of the object
pointed to by s2.
and
(7.24.5.1 §2) The memchr 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 second sentence in the description of memchr() means a bogus length
is allowed as long as we get a match before we read past the end of the
object. There is no such provision for memcmp(), so calling memcmp()
with a bogus length invokes UB.
DES
--
Dag-Erling Smørgrav - des@FreeBSD.org