aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssl/src/ssl.erl
diff options
context:
space:
mode:
authorIngela Anderton Andin <[email protected]>2014-03-04 10:52:44 +0100
committerIngela Anderton Andin <[email protected]>2014-03-04 10:52:44 +0100
commit477824259524f918ad94d36fb0d3b746e4b12111 (patch)
treef3332642219137d663f7d713996a4ddf4322688a /lib/ssl/src/ssl.erl
parentcbf9cc25d05d8d3c87678fd8c6f437abbc9eb6b2 (diff)
parent9358afed5afdf9da8a19e325e32c1be4b723c705 (diff)
downloadotp-477824259524f918ad94d36fb0d3b746e4b12111.tar.gz
otp-477824259524f918ad94d36fb0d3b746e4b12111.tar.bz2
otp-477824259524f918ad94d36fb0d3b746e4b12111.zip
Merge branch 'ia/ssl/proplist-input-check/OTP-11760'
* ia/ssl/proplist-input-check/OTP-11760: ssl: Add input sanity check
Diffstat (limited to 'lib/ssl/src/ssl.erl')
-rw-r--r--lib/ssl/src/ssl.erl8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/ssl/src/ssl.erl b/lib/ssl/src/ssl.erl
index c3bdeb1a54..d46c05c5f3 100644
--- a/lib/ssl/src/ssl.erl
+++ b/lib/ssl/src/ssl.erl
@@ -557,6 +557,7 @@ do_connect(Address, Port,
handle_options(Opts0, _Role) ->
Opts = proplists:expand([{binary, [{mode, binary}]},
{list, [{mode, list}]}], Opts0),
+ assert_proplist(Opts),
ReuseSessionFun = fun(_, _, _, _) -> true end,
DefaultVerifyNoneFun =
@@ -1042,3 +1043,10 @@ connection_sup(dtls_connection) ->
binary_filename(FileName) ->
Enc = file:native_name_encoding(),
unicode:characters_to_binary(FileName, unicode, Enc).
+
+assert_proplist([]) ->
+ true;
+assert_proplist([{Key,_} | Rest]) when is_atom(Key) ->
+ assert_proplist(Rest);
+assert_proplist([Value | _]) ->
+ throw({option_not_a_key_value_tuple, Value}).