aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFredrik Gustafsson <[email protected]>2013-09-30 16:22:38 +0200
committerFredrik Gustafsson <[email protected]>2013-09-30 16:22:38 +0200
commit157c52840b3a83da5f753d932acae3480bf4bfd2 (patch)
tree00e3cb0fd10a96e461dfc6e5dbf8ecb4a0ed0bc4
parentb44a8d0e488be8ecbb018fbdb3926e129caf0ed0 (diff)
parente6b5ae09d292ee0251aab875be1d3245f260b493 (diff)
downloadotp-157c52840b3a83da5f753d932acae3480bf4bfd2.tar.gz
otp-157c52840b3a83da5f753d932acae3480bf4bfd2.tar.bz2
otp-157c52840b3a83da5f753d932acae3480bf4bfd2.zip
Merge branch 'maint'
-rw-r--r--erts/emulator/beam/erl_bif_binary.c3
-rw-r--r--lib/stdlib/test/binary_module_SUITE.erl4
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>>,