|
Message-ID: <20181029225957.GR5150@brightrain.aerifal.cx> Date: Mon, 29 Oct 2018 18:59:57 -0400 From: Rich Felker <dalias@...c.org> To: musl@...ts.openwall.com Cc: Robert Högberg <robert.hogberg@...il.com> Subject: Re: Unexpected regex behaviour On Mon, Oct 29, 2018 at 11:26:19PM +0100, Robert Högberg wrote: > Hi, > > I've noticed that the musl regex implementation behaves slightly > differently than the glibc implementation. I'm attaching a short program > showing the behaviour. > > The difference makes yate (http://yate.null.ro) misbehave when running with > musl (reported here: https://github.com/openwrt/telephony/issues/378). > > Yate uses a regexp like this: > "^\\([[:alpha:]][[:alnum:]]\\+:\\)\\?/\\?/\\?\\([^[:space:][:cntrl:]@]\\+@\\)\\?\\([[:alnum:]._+-]\\+\\|[[][[:xdigit:].:]\\+[]]\\)\\(:[0-9]\\+\\)\\?" > > ... to parse strings like: > "sip:012345678@...111.11.111:5060;user=phone" > > ... and the matches produced by musl are: > Match 0: 0 - 32 sip:012345678@...111.11.111:5060 > Match 1: -1 - -1 > Match 2: 0 - 14 sip:012345678@ > Match 3: 14 - 27 11.111.11.111 > Match 4: 27 - 32 :5060 > > ... while glibc produces: > Match 0: 0 - 32 sip:012345678@...111.11.111:5060 > Match 1: 0 - 4 sip: > Match 2: 4 - 14 012345678@ > Match 3: 14 - 27 11.111.11.111 > Match 4: 27 - 32 :5060 > > What do you think? > > I've only tested musl 1.1.19. Sorry if this is not valid for later > releases. I skimmed the 1.1.20 release notes and didn't find anything regex > related. I haven't checked which of the extensions you're using are supported in musl, but the above is not a conforming POSIX BRE. It would be a lot more readable and portable to use POSIX ERE (REG_EXTENDED) which has the +, ?, and | operators as standard features. This looks like it should work: "^([[:alpha:]][[:alnum:]]+:)?/?/?([^[:space:][:cntrl:]@]+@)?([[:alnum:]._+-]+|[[][[:xdigit:].:]+[]])(:[0-9]+)?" The only reason to use POSIX BRE is if you need backreferences, which are not regular and explicitly not supported in ERE. Rich
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.