aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public_key/src
diff options
context:
space:
mode:
authorHans Nilsson <[email protected]>2017-10-11 12:35:38 +0200
committerHans Nilsson <[email protected]>2017-10-12 15:01:01 +0200
commit93534057710cef4a88f18f441fea20e733ebc253 (patch)
treee44c3879afff4567c3c975ee4f95d83698b3608a /lib/public_key/src
parentf37f9eac178836e6bcdf575fa4c72642f146de35 (diff)
downloadotp-93534057710cef4a88f18f441fea20e733ebc253.tar.gz
otp-93534057710cef4a88f18f441fea20e733ebc253.tar.bz2
otp-93534057710cef4a88f18f441fea20e733ebc253.zip
public_key: Fix bug in pkix_verify_hostname with IP addresses
An IP address could in some circomstances be converted to a list and then to_lower was applied to it. So {$A,1,1,1} was changed to {$a,1,1,1} which of course didn't match....
Diffstat (limited to 'lib/public_key/src')
-rw-r--r--lib/public_key/src/public_key.erl2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/public_key/src/public_key.erl b/lib/public_key/src/public_key.erl
index c3f2d791a3..453f34de64 100644
--- a/lib/public_key/src/public_key.erl
+++ b/lib/public_key/src/public_key.erl
@@ -1529,6 +1529,8 @@ verify_hostname_match_loop(Refs, Pres, MatchFun, FailCB, Cert) ->
Refs).
+to_lower_ascii({ip,_}=X) -> X;
+to_lower_ascii({iPAddress,_}=X) -> X;
to_lower_ascii(S) when is_list(S) -> lists:map(fun to_lower_ascii/1, S);
to_lower_ascii({T,S}) -> {T, to_lower_ascii(S)};
to_lower_ascii(C) when $A =< C,C =< $Z -> C + ($a-$A);