diff options
author | Fredrik Gustafsson <[email protected]> | 2013-09-30 16:22:38 +0200 |
---|---|---|
committer | Fredrik Gustafsson <[email protected]> | 2013-09-30 16:22:38 +0200 |
commit | 157c52840b3a83da5f753d932acae3480bf4bfd2 (patch) | |
tree | 00e3cb0fd10a96e461dfc6e5dbf8ecb4a0ed0bc4 | |
parent | b44a8d0e488be8ecbb018fbdb3926e129caf0ed0 (diff) | |
parent | e6b5ae09d292ee0251aab875be1d3245f260b493 (diff) | |
download | otp-157c52840b3a83da5f753d932acae3480bf4bfd2.tar.gz otp-157c52840b3a83da5f753d932acae3480bf4bfd2.tar.bz2 otp-157c52840b3a83da5f753d932acae3480bf4bfd2.zip |
Merge branch 'maint'
-rw-r--r-- | erts/emulator/beam/erl_bif_binary.c | 3 | ||||
-rw-r--r-- | lib/stdlib/test/binary_module_SUITE.erl | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_bif_binary.c b/erts/emulator/beam/erl_bif_binary.c index 0db19a1ee6..ff775691b3 100644 --- a/erts/emulator/beam/erl_bif_binary.c +++ b/erts/emulator/beam/erl_bif_binary.c @@ -927,6 +927,9 @@ static int do_binary_match_compile(Eterm argument, Eterm *tag, Binary **binp) if (binary_bitsize(b) != 0) { goto badarg; } + if (binary_size(b) == 0) { + goto badarg; + } ++words; characters += binary_size(b); } diff --git a/lib/stdlib/test/binary_module_SUITE.erl b/lib/stdlib/test/binary_module_SUITE.erl index d6886ba1e5..d5a0fe21b4 100644 --- a/lib/stdlib/test/binary_module_SUITE.erl +++ b/lib/stdlib/test/binary_module_SUITE.erl @@ -248,6 +248,10 @@ badargs(Config) when is_list(Config) -> binary:matches(<<1,2,3>>, {ac,ets:match_spec_compile([{'_',[],['$_']}])}, [{scope,{0,1}}])), + %% OTP-11350 + badarg = ?MASK_ERROR( + binary:matches(<<"foo">>, + [<<>>, <<"f">>])), ?line badarg = ?MASK_ERROR(binary:longest_common_prefix( [<<0:10000,1,2,4,1:3>>, |