Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Mon, 29 Oct 2018 23:26:19 +0100
From: Robert Högberg <robert.hogberg@...il.com>
To: musl@...ts.openwall.com
Subject: Unexpected regex behaviour

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.

Regards
Robert

Content of type "text/html" skipped

View attachment "yate_regexp.c" of type "text/x-csrc" (1402 bytes)

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.