<div dir="ltr">Hi erlang-patches,<br><div><div><br></div><div>Including an empty binary as one of multiple patterns to binary:matches/2 crashes BEAM:</div><div><br></div><div>    binary:matches(<<"foo">>, [<<>>, <<"f">>]). % -> Crash</div>

<div><br></div><div>Passing just an empty binary, or a list containing only the empty binary throws a badarg as expected:</div><div><br></div><div>    binary:matches(<<"foo">>, <<>>) % -> badarg</div>

<div>    binary:matches(<<"foo">>, [<<>>]) % -> badarg</div><div><br></div><div>My patch ensures all patterns passed to binary:matches/2 are checked for validity and throws badarg if one is not valid.</div>

<div><br></div><div>You can fetch the patch with:</div><div><br></div><div>    git fetch git://<a href="http://github.com/msassak/otp.git">github.com/msassak/otp.git</a> empty-pattern-badarg</div><div><br></div><div>And check out diff views here:</div>

<div><br></div><div>    <a href="https://github.com/msassak/otp/compare/erlang:maint...empty-pattern-badarg">https://github.com/msassak/otp/compare/erlang:maint...empty-pattern-badarg</a></div><div>    <a href="https://github.com/msassak/otp/compare/erlang:maint...empty-pattern-badarg.patch">https://github.com/msassak/otp/compare/erlang:maint...empty-pattern-badarg.patch</a></div>

<div><br></div><div>Mike</div></div><div><br></div>
</div>