[erlang-bugs] Unexpected crash using inet_res:lookup/3
Daniel Luna
daniel@REDACTED
Fri Mar 9 21:55:46 CET 2012
Hi,
inet_res:lookup/3 normally doesn't crash for almost any input (see
examples 7-10 where I feed atoms and binaries to it).
But in the case of a string starting with period or a containing a
double period it will crash in inet_dns:encode_labels/4.
No mention of this being expected in the documentation so assume that
it's a bug. See examples below.
Linux, R15B.
Cheers,
Daniel
Erlang R15B (erts-5.9) [source] [64-bit] [smp:5:5] [async-threads:0]
[kernel-poll:false]
Eshell V5.9 (abort with ^G)
1> inet_res:lookup("erlang.com", in, mx).
[{20,"mail.numbering.info"}]
2> inet_res:lookup("erlang..com", in, mx).
** exception error: no function clause matching
inet_dns:encode_labels(<<0,2,1,0,0,1,0,0,0,0,0,0,6,101,114,108,97,110,103>>,
{1,{[<<"erlang">>,<<>>,<<"com">>],12,nil,nil}},
19,
[<<>>,<<"com">>]) (inet_dns.erl, line 693)
in function inet_dns:encode_name/4 (inet_dns.erl, line 674)
in call from inet_dns:encode_query_section/3 (inet_dns.erl, line 268)
in call from inet_dns:encode/1 (inet_dns.erl, line 239)
in call from inet_res:make_query/5 (inet_res.erl, line 669)
in call from inet_res:make_query/4 (inet_res.erl, line 637)
in call from inet_res:res_query/5 (inet_res.erl, line 608)
in call from inet_res:resolve/5 (inet_res.erl, line 141)
3> inet_res:lookup("..", in, mx).
** exception error: no function clause matching
inet_dns:encode_labels(<<0,3,1,0,0,1,0,0,0,0,0,0>>,{0,nil},12,[<<>>,<<>>])
(inet_dns.erl, line 693)
in function inet_dns:encode_name/4 (inet_dns.erl, line 674)
in call from inet_dns:encode_query_section/3 (inet_dns.erl, line 268)
in call from inet_dns:encode/1 (inet_dns.erl, line 239)
in call from inet_res:make_query/5 (inet_res.erl, line 669)
in call from inet_res:make_query/4 (inet_res.erl, line 637)
in call from inet_res:res_query/5 (inet_res.erl, line 608)
in call from inet_res:resolve/5 (inet_res.erl, line 141)
4> inet_res:lookup(".", in, mx).
[]
5> inet_res:lookup(".com", in, mx).
** exception error: no function clause matching
inet_dns:encode_labels(<<0,5,1,0,0,1,0,0,0,0,0,0>>,{0,nil},12,[<<>>,<<"com">>])
(inet_dns.erl, line 693)
in function inet_dns:encode_name/4 (inet_dns.erl, line 674)
in call from inet_dns:encode_query_section/3 (inet_dns.erl, line 268)
in call from inet_dns:encode/1 (inet_dns.erl, line 239)
in call from inet_res:make_query/5 (inet_res.erl, line 669)
in call from inet_res:make_query/4 (inet_res.erl, line 637)
in call from inet_res:res_query/5 (inet_res.erl, line 608)
in call from inet_res:resolve/5 (inet_res.erl, line 141)
6> inet_res:lookup("erlang.", in, mx).
[]
7> inet_res:lookup([1234567], in, mx).
[]
8> inet_res:lookup([atom], in, mx).
[]
9> inet_res:lookup(atom, in, mx).
[]
10> inet_res:lookup(<<"binary">>, in, mx).
[]
More information about the erlang-bugs
mailing list