On Sat, Mar 27, 2021 at 10:51 AM Florian Weimer wrote: > > * H. J. Lu via Libc-alpha: > > > Run strnlen tests on strings without the null byte around the page > > boundary. > > --- > > string/test-strnlen.c | 26 ++++++++++++++++++++++++++ > > 1 file changed, 26 insertions(+) > > > > diff --git a/string/test-strnlen.c b/string/test-strnlen.c > > index 61eb521dc1..a49d93afa2 100644 > > --- a/string/test-strnlen.c > > +++ b/string/test-strnlen.c > > @@ -196,6 +196,31 @@ do_page_tests (void) > > } > > } > > > > +/* Tests meant to unveil fail on implementation that does not access bytes > > + without the null character around the page boundary accordingly. */ > > I don't understand the comment. Based on it, I would have expected a > null byte at the page boundary, which is incorrectly ignored by the > implementation. It places strings ending at page boundary without the null byte. If an implementation goes beyond EXP_LEN, it will trigger the segfault. > > +static void > > +do_page_2_tests (void) > > +{ > > + size_t i, exp_len, offset; > > + size_t last_offset = page_size / sizeof (CHAR); > > + > > + CHAR *s = (CHAR *) buf2; > > + memset (s, 65, page_size); > > I think this needs to use wmemset for the WIDE case, see > wcsmbs/test-wcsnlen.c. Fixed. Here is the v2 patch. -- H.J.