From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.4 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,MISSING_HEADERS,RCVD_IN_MSPIKE_H2, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 13142 invoked from network); 14 May 2023 15:18:05 -0000 Received: from second.openwall.net (193.110.157.125) by inbox.vuxu.org with ESMTPUTF8; 14 May 2023 15:18:05 -0000 Received: (qmail 16365 invoked by uid 550); 14 May 2023 15:17:50 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 16314 invoked from network); 14 May 2023 15:17:48 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nabijaczleweli.xyz; s=202305; t=1684077457; bh=+1YQfgwc9weUKC3AhF7QxcqbGVnD0Rs3efjzP5boIOk=; h=Date:From:Cc:Subject:References:In-Reply-To:From; b=Fv9uwoNQoPakffVKoNT66JHjeaIuPHqGlS2vNT2UL1gccjKRRFveCWMc+lq5EA5n+ mK/qB1hVDw7ffXNRAVjsRUr5eK1nBnNfvOpTQQRGd1XLiAbno84T5wTOckIB9So0tF OniUmW/ztF8jy7cEOxec7wlv86FHewlhxmmytZfGRDlQ6/2aPvr4UbJRCWJXWC8f+B 8MnYkEY3EBzAPpbwH7IDNjGdOWwB1MUo9nWXoENOgZ0z9ZZb2eofiHBWzXwA3OmupJ pTYwDbenyEqG9G7WExQQGjgpqVCRlE3iPTexvF0WYom4bHu2wBgloY4Ii6X84+l88K QdKjhHEFqcSBQ== Date: Sun, 14 May 2023 17:17:36 +0200 From: =?utf-8?B?0L3QsNCx?= Cc: musl@lists.openwall.com Message-ID: <121cd121406c58342e2c22d839099668aff64b33.1684077278.git.nabijaczleweli@nabijaczleweli.xyz> References: <007f7c7408aa227ee7b0fb3d82e44b8142db6ff4.1682681245.git.nabijaczleweli@nabijaczleweli.xyz> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="zvfdied5m3t3s3mp" Content-Disposition: inline In-Reply-To: <007f7c7408aa227ee7b0fb3d82e44b8142db6ff4.1682681245.git.nabijaczleweli@nabijaczleweli.xyz> User-Agent: NeoMutt/20230407 Subject: [musl] [PATCH v3 2/2] regex: increase TRE_CHAR_MAX and use it for NUL with REG_STARTEND --zvfdied5m3t3s3mp Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable This character cannot be named normally, much like the NUL it's standing in for, but can be matched with catch-alls like . and [^]. This brings us to feature parity with NetBSD: $ ./a.out '^a[^w]c$' # matching "a\0c" 0 1, 4; -1, -1 $ ./a.out '^a.c$' 0 1, 4; -1, -1 $ ./a.out '.c$' 0 2, 4; -1, -1 $ ./a.out '.*' 0 1, 4; -1, -1 $ sed -i 's/cdef/adef/' a.c $ ./a.out '^\(a\).\1$' # matching "a\0a" 0 1, 4; 1, 2 --- src/regex/regexec.c | 2 +- src/regex/tre.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/regex/regexec.c b/src/regex/regexec.c index 763dde58..f493a703 100644 --- a/src/regex/regexec.c +++ b/src/regex/regexec.c @@ -60,7 +60,7 @@ tre_fill_pmatch(size_t nmatch, regmatch_t pmatch[], int c= flags, if (!max_len) { next_c =3D L'\0'; pos_add_next =3D 1; } = \ else if ((pos_add_next =3D mbtowc(&next_c, str_byte, max_len)) <=3D 0)= { \ if (pos_add_next < 0) { ret =3D REG_NOMATCH; goto error_exit; } = \ - else { pos_add_next++; if (startend) next_c =3D -1; }; = \ + else { pos_add_next++; if (startend) next_c =3D TRE_CHAR_MAX; }; = \ } = \ str_byte +=3D pos_add_next; = \ } while (0) diff --git a/src/regex/tre.h b/src/regex/tre.h index 9aae851f..e913899a 100644 --- a/src/regex/tre.h +++ b/src/regex/tre.h @@ -50,7 +50,7 @@ typedef wchar_t tre_char_t; =20 /* Wide characters. */ typedef wint_t tre_cint_t; -#define TRE_CHAR_MAX 0x10ffff +#define TRE_CHAR_MAX (0x10ffff + 1) =20 #define tre_isalnum iswalnum #define tre_isalpha iswalpha --=20 2.30.2 --zvfdied5m3t3s3mp Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEfWlHToQCjFzAxEFjvP0LAY0mWPEFAmRg+48ACgkQvP0LAY0m WPEtJhAApYxdXmfD56/0U3x2YnOQJfHVwcgKKcyyx/70T0fv2OGMTXCeqqqm1qih CuKC28dpTtJNYgosV8qv3NGplb4JiIiWBJtTVKO9xk0hU4jJ25f4wnA60dutGKRH wPDeGpB3pLuHNzWisBLY8XYvHMT21Xa5sXXCIF7CxbG3xzmNyF3ZHSC++BZV2y0x r4S9UzsHG8zAMMWaJMw+NXrLWeUEWrvO+uypYAlmaS36ElO18/f6yYZUu5JGAcmC FKwTM2dcuNArem5sLff0aJPklAd0mtjPlhcMikXqQssAVq87qK6wDQDZWpt9latY LC/jaNiU3T1Y7+pYVg7BwAyCOuC3dJikJfypJyKO53pNTIcWh6ZLzobIbgsW4NrY MajXFHoaDNbGsJQM4nOnY+KoV83Qg/QygMITNZFHFw7Y64gLNcNRVkyGbXOWYfFK FTIBx9UEBEhOC3KtVYC35298qs9rQTSEwa8BGr068q9ZyPaMp/cxKh+12uW+R4zh 6seOFs0VQIO5HRry0vqUXkKxxLekOZRMwfVz2f5eFUrqSH+KQZ9XR3miIuSbfySj +YB4jmU6+EyNBIIix+qkpOCHdFQ3rmFxKRJB1+6a0AdTXnremqNPz4Dg6unpQpgW xGZicxIlUpEs8QaOGFGGxn6pE1ZRdsty62XaeC5HbRFxYnnQk+o= =B5wb -----END PGP SIGNATURE----- --zvfdied5m3t3s3mp--