From: Rich Felker <email@example.com> To: Johannes Schindelin <Johannes.Schindelin@gmx.de> Cc: Jeff King <firstname.lastname@example.org>, email@example.com, firstname.lastname@example.org Subject: Re: [musl] Re: Regression: git no longer works with musl libc's regex impl Date: Wed, 5 Oct 2016 09:15:59 -0400 [thread overview] Message-ID: <20161005131559.GG19318@brightrain.aerifal.cx> (raw) In-Reply-To: <alpine.DEB.2.20.1610051250080.35196@virtualbox> On Wed, Oct 05, 2016 at 01:17:49PM +0200, Johannes Schindelin wrote: > Hi Rich, > > On Tue, 4 Oct 2016, Rich Felker wrote: > > > On Tue, Oct 04, 2016 at 06:08:33PM +0200, Johannes Schindelin wrote: > > > > > And lastly, the best alternative would be to teach musl about > > > REG_STARTEND, as it is rather useful a feature. > > > > Maybe, but it seems fundamentally costly to support -- it's extra > > state in the inner loops that imposes costly spill/reload on archs > > with too few registers (x86). > > It is true that it could cause that. > > I had a brief look at the source code (you use backtracking... Where did you get that idea? Backtracking is the most utterly incompetent way to implement regex -- it throws away the whole property that makes regex useful, being regular. Unfortunately, POSIX BRE is not regular, as it contains backreferences, so any implementation of regcomp/regexec requires at least a minimal backtracking code path for BREs that contain backreferences. > hopefully > nobody uses musl to parse regular expressions from untrusted, or On the contrary, musl's is the only system reccomp/regexec I'm aware of that actually attempts to be safe with untrusted input -- when using REG_EXTENDED (ERE). Other implementations provide backreferences in ERE as an extension, making ERE unsafe just like BRE. musl intentionally disallows them as a feature. At least until recently, glibc also crashed on malloc failures in regcomp, making it unsafe on untrusted input for that reason too. Rich
next prev parent reply other threads:[~2016-10-05 13:16 UTC|newest] Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-10-04 15:08 Rich Felker 2016-10-04 15:27 ` Jeff King 2016-10-04 15:40 ` Rich Felker 2016-10-04 16:08 ` Johannes Schindelin 2016-10-04 16:11 ` Rich Felker 2016-10-04 17:16 ` Johannes Schindelin 2016-10-04 18:00 ` Ray Donnelly 2016-10-04 17:39 ` [musl] " Rich Felker 2016-10-05 11:17 ` Johannes Schindelin 2016-10-05 13:01 ` Szabolcs Nagy 2016-10-05 13:15 ` Rich Felker [this message] 2016-10-04 22:06 ` James B 2016-10-04 22:33 ` Rich Felker 2016-10-04 22:48 ` Junio C Hamano 2016-10-05 13:11 ` Jakub Narębski 2016-10-05 16:15 ` [musl] " Rich Felker 2016-10-05 10:41 ` Johannes Schindelin 2016-10-05 11:59 ` James B 2016-10-05 16:11 ` Jeff King 2016-10-05 16:27 ` Rich Felker 2016-10-06 10:44 ` Johannes Schindelin 2016-10-06 19:18 ` Ævar Arnfjörð Bjarmason 2016-10-06 19:23 ` Jeff King 2016-10-06 19:25 ` Rich Felker 2016-10-06 19:28 ` Jeff King 2016-10-06 22:42 ` Ramsay Jones 2016-10-07 11:30 ` Jakub Narębski 2016-10-04 16:01 ` Johannes Schindelin 2016-10-05 3:00 [musl] " writeonce 2016-10-05 10:49 ` Johannes Schindelin 2016-10-05 16:37 writeonce
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: http://vger.kernel.org/majordomo-info.html * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20161005131559.GG19318@brightrain.aerifal.cx \ --email@example.com \ --cc=Johannes.Schindelin@gmx.de \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --subject='Re: [musl] Re: Regression: git no longer works with musl libc'\''s regex impl' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Code repositories for project(s) associated with this inbox: https://80x24.org/mirrors/git.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).