[Issue 12691] New: std.regex.bmatch with empty string after OR operator crashes with free(): invalid pointer
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Fri May 2 08:18:53 PDT 2014
https://issues.dlang.org/show_bug.cgi?id=12691
Issue ID: 12691
Summary: std.regex.bmatch with empty string after OR operator
crashes with free(): invalid pointer
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: normal
Priority: P1
Component: Phobos
Assignee: nobody at puremagic.com
Reporter: yxcvbasdfgqwert02 at gmx.de
Created attachment 1349
--> https://issues.dlang.org/attachment.cgi?id=1349&action=edit
Source code for test case
Certain expressions/haystacks seem to trigger a memory error in
std.regex.bmatch.
In the attached source code, the regular expression is kind-of stupid, however
it should be either treated as wrong (std.regex.regex should throw an
exception) or should work, but never crash. In the test case, the expression
"([a-z]|)" uses an empty string after the OR operator.
The crash also occurred on a more complex expression with 2 OR operators
beneath, containing something like "a||b".
Using match instead of bmatch returns the expected result: the expression
doesn't match the haystack.
Btw, I used bmatch instead of match because bmatch is way faster (see issue
12690).
--
More information about the Digitalmars-d-bugs
mailing list