diff options
author | Erlang/OTP <[email protected]> | 2010-06-01 11:32:23 +0000 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2010-06-01 11:32:23 +0000 |
commit | 77ec9a785a17e81581a940bded3a86934aef70e0 (patch) | |
tree | 5e44645cf8dd48d9cf7b066d3270e6c2dcc3273c | |
parent | 256fb889b337781d27642471f16a5c7e0a988d8c (diff) | |
parent | 39e563a0e0a8e3a71fec8f5a1f5d4dfb0a3425f7 (diff) | |
download | otp-77ec9a785a17e81581a940bded3a86934aef70e0.tar.gz otp-77ec9a785a17e81581a940bded3a86934aef70e0.tar.bz2 otp-77ec9a785a17e81581a940bded3a86934aef70e0.zip |
Merge branch 'bg/dist_utils' into dev
* bg/dist_utils:
dist_utils: Eliminate crash when list_to_existing_atom/1 fails
-rw-r--r-- | lib/kernel/src/dist_util.erl | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/kernel/src/dist_util.erl b/lib/kernel/src/dist_util.erl index a2937d60b8..f0d54a2f3e 100644 --- a/lib/kernel/src/dist_util.erl +++ b/lib/kernel/src/dist_util.erl @@ -1,19 +1,19 @@ %% %% %CopyrightBegin% -%% -%% Copyright Ericsson AB 1999-2009. All Rights Reserved. -%% +%% +%% Copyright Ericsson AB 1999-2010. All Rights Reserved. +%% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in %% compliance with the License. You should have received a copy of the %% Erlang Public License along with this software. If not, it can be %% retrieved online at http://www.erlang.org/. -%% +%% %% Software distributed under the License is distributed on an "AS IS" %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See %% the License for the specific language governing rights and limitations %% under the License. -%% +%% %% %CopyrightEnd% %% %%%---------------------------------------------------------------------- @@ -564,7 +564,7 @@ recv_challenge(#hs_data{socket=Socket,other_node=Node, case Recv(Socket, 0, infinity) of {ok,[$n,V1,V0,Fl1,Fl2,Fl3,Fl4,CA3,CA2,CA1,CA0 | Ns]} -> Flags = ?u32(Fl1,Fl2,Fl3,Fl4), - case {list_to_existing_atom(Ns),?u16(V1,V0)} of + try {list_to_existing_atom(Ns),?u16(V1,V0)} of {Node,Version} -> Challenge = ?u32(CA3,CA2,CA1,CA0), ?trace("recv: node=~w, challenge=~w version=~w\n", @@ -572,6 +572,9 @@ recv_challenge(#hs_data{socket=Socket,other_node=Node, {Flags,Challenge}; _ -> ?shutdown(no_node) + catch + error:badarg -> + ?shutdown(no_node) end; _ -> ?shutdown(no_node) |