[erlang-bugs] badarg in new_ssl ssl_connection with client socket and {packet, http}
Ingela Anderton Andin
ingela@REDACTED
Wed Jun 23 15:41:52 CEST 2010
Hi!
This was fixed in ssl-3.11.1.
From release notes: (Second part is the relevant one).
"Alert handling has been improved to better handle unexpected but valid
messages and the implementation is also changed to avoid timing related
issues that could cause different error messages depending on network
latency. Packet handling was sort of broken but would mostly work as
expected when socket was in binary mode. This has now been fixed. Own
Id: OTP-8588"
Although the patch ssl-3.11.1 on R13B has not been released as no one
requested it. We just want to have a ssl version on R13B that is as
close as possible to
ssl-4.0 (if someone needs it) .
Regards Ingela Erlang/OTP team - Ericsson AB
Jonas Boberg wrote:
> Hi!
>
> The http packet option does not work with new_ssl client sockets.
> The ssl_connection process crashes with a badarg when retrieving the http response:
> ::exit:{{badarg,[{erlang,binary_to_list,[{http_response,{1,1},200,"OK"}]},
> {ssl_connection,format_reply,3},
> {ssl_connection,format_reply,2},
> {ssl_connection,deliver_app_data,4},
> {ssl_connection,application_data,2},
> {ssl_connection,handle_event,3},
> {gen_fsm,handle_msg,7},
> {proc_lib,init_p_do_apply,3}]},
> {gen_fsm,sync_send_all_state_event,[<0.592.0>,{recv,0},1000]}}
> in function gen_fsm:sync_send_all_state_event/3
> in call from ssl_connection:sync_send_all_state_event/3
>
> Erlang version: R13B04 (no fix mentioned in in the release notes of R14A).
>
> How to repeat:
> * ssl:connect to a http server
> * ssl:send a http request string
> * call ssl:recv on the socket
>
> Trace that shows the calls:
> (<0.592.0>) call ssl:connect("localhost",10000,[{ssl_imp,new},{packet,http},{active,false}])
> (<0.592.0>) returned from ssl:connect/3 -> {ok,{sslsocket,new_ssl,<0.594.0>}}
>
> (<0.592.0>) call ssl:send({sslsocket,new_ssl,<0.594.0>},"GET / HTTP/1.1\r\n\r\n")
> (<0.592.0>) returned from ssl:send/2 -> ok
>
> (<0.592.0>) call ssl:recv({sslsocket,new_ssl,<0.594.0>},0,1000)
>
> (<0.592.0>) exception_from {ssl,recv,3} {exit,{{badarg,[{erlang,binary_to_list,[{http_response,{1,1},200,"OK"}]},
> {ssl_connection,format_reply,3},
> {ssl_connection,format_reply,2},
> {ssl_connection,deliver_app_data,4},
> {ssl_connection,application_data,2},
> {ssl_connection,handle_event,3},
> {gen_fsm,handle_msg,7},
> {proc_lib,init_p_do_apply,3}]},
> {gen_fsm,sync_send_all_state_event,[<0.594.0>,{recv,0},1000]}}}
>
>
> /Jonas
> ---------------------------------------------------
>
> ---------------------------------------------------
>
> WE'VE CHANGED NAMES!
>
> Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD.
>
> www.erlang-solutions.com
>
>
> ________________________________________________________________
> erlang-bugs (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:erlang-bugs-unsubscribe@REDACTED
>
>
More information about the erlang-bugs
mailing list