aboutsummaryrefslogtreecommitdiffstats
path: root/community/erlang/0070-otp-update-version-18.2.2.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/erlang/0070-otp-update-version-18.2.2.patch')
-rw-r--r--community/erlang/0070-otp-update-version-18.2.2.patch180
1 files changed, 180 insertions, 0 deletions
diff --git a/community/erlang/0070-otp-update-version-18.2.2.patch b/community/erlang/0070-otp-update-version-18.2.2.patch
new file mode 100644
index 0000000000..6b5ec358cd
--- /dev/null
+++ b/community/erlang/0070-otp-update-version-18.2.2.patch
@@ -0,0 +1,180 @@
+--- a/OTP_VERSION
++++ b/OTP_VERSION
+@@ -1 +1 @@
+-18.2.1
++18.2.2
+--- a/lib/ssh/doc/src/notes.xml
++++ b/lib/ssh/doc/src/notes.xml
+@@ -30,6 +30,24 @@
+ <file>notes.xml</file>
+ </header>
+
++<section><title>Ssh 4.2.1</title>
++
++ <section><title>Fixed Bugs and Malfunctions</title>
++ <list>
++ <item>
++ <p>
++ The authentication method 'keyboard-interactive' failed
++ in the Erlang client when the server after successful
++ authentication continued by asking for zero more
++ passwords.</p>
++ <p>
++ Own Id: OTP-13225</p>
++ </item>
++ </list>
++ </section>
++
++</section>
++
+ <section><title>Ssh 4.2</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+--- a/lib/ssh/src/ssh_auth.erl
++++ b/lib/ssh/src/ssh_auth.erl
+@@ -477,7 +477,7 @@ keyboard_interact_get_responses(_, undefined, Password, _, _, _, _, _,
+ 1) when Password =/= undefined ->
+ [Password]; %% Password auth implemented with keyboard-interaction and passwd is known
+ keyboard_interact_get_responses(_, _, _, _, _, _, _, _, 0) ->
+- [""];
++ [];
+ keyboard_interact_get_responses(false, undefined, undefined, _, _, _, [Prompt|_], Opts, _) ->
+ ssh_no_io:read_line(Prompt, Opts); %% Throws error as keyboard interaction is not allowed
+ keyboard_interact_get_responses(true, undefined, _,IoCb, Name, Instr, PromptInfos, Opts, _) ->
+--- a/lib/ssh/src/ssh_connection_handler.erl
++++ b/lib/ssh/src/ssh_connection_handler.erl
+@@ -648,10 +648,12 @@ userauth_keyboard_interactive(Msg = #ssh_msg_userauth_failure{},
+ userauth_keyboard_interactive_info_response(Msg=#ssh_msg_userauth_failure{},
+ #state{ssh_params = #ssh{role = client}} = State) ->
+ userauth(Msg, State);
+-
+ userauth_keyboard_interactive_info_response(Msg=#ssh_msg_userauth_success{},
+ #state{ssh_params = #ssh{role = client}} = State) ->
+- userauth(Msg, State).
++ userauth(Msg, State);
++userauth_keyboard_interactive_info_response(Msg=#ssh_msg_userauth_info_request{},
++ #state{ssh_params = #ssh{role = client}} = State) ->
++ userauth_keyboard_interactive(Msg, State).
+
+ %%--------------------------------------------------------------------
+ -spec connected({#ssh_msg_kexinit{}, binary()}, %%| %% #ssh_msg_kexdh_init{},
+--- a/lib/ssh/test/ssh_protocol_SUITE.erl
++++ b/lib/ssh/test/ssh_protocol_SUITE.erl
+@@ -48,6 +48,7 @@ all() ->
+ [{group,tool_tests},
+ {group,kex},
+ {group,service_requests},
++ {group,authentication},
+ {group,packet_size_error},
+ {group,field_size_error}
+ ].
+@@ -78,7 +79,9 @@ groups() ->
+ bad_very_long_service_name,
+ empty_service_name,
+ bad_service_name_then_correct
+- ]}
++ ]},
++ {authentication, [], [client_handles_keyboard_interactive_0_pwds
++ ]}
+ ].
+
+
+@@ -516,6 +519,82 @@ bad_service_name_length(Config, LengthExcess) ->
+ receive_msg}
+ ], InitialState).
+
++%%%--------------------------------------------------------------------
++%%% This is due to a fault report (OTP-13255) with OpenSSH-6.6.1
++client_handles_keyboard_interactive_0_pwds(Config) ->
++ {User,_Pwd} = server_user_password(Config),
++
++ %% Create a listening socket as server socket:
++ {ok,InitialState} = ssh_trpt_test_lib:exec(listen),
++ HostPort = ssh_trpt_test_lib:server_host_port(InitialState),
++
++ %% Start a process handling one connection on the server side:
++ spawn_link(
++ fun() ->
++ {ok,_} =
++ ssh_trpt_test_lib:exec(
++ [{set_options, [print_ops, print_messages]},
++ {accept, [{system_dir, system_dir(Config)},
++ {user_dir, user_dir(Config)}]},
++ receive_hello,
++ {send, hello},
++
++ {send, ssh_msg_kexinit},
++ {match, #ssh_msg_kexinit{_='_'}, receive_msg},
++
++ {match, #ssh_msg_kexdh_init{_='_'}, receive_msg},
++ {send, ssh_msg_kexdh_reply},
++
++ {send, #ssh_msg_newkeys{}},
++ {match, #ssh_msg_newkeys{_='_'}, receive_msg},
++
++ {match, #ssh_msg_service_request{name="ssh-userauth"}, receive_msg},
++ {send, #ssh_msg_service_accept{name="ssh-userauth"}},
++
++ {match, #ssh_msg_userauth_request{service="ssh-connection",
++ method="none",
++ user=User,
++ _='_'}, receive_msg},
++ {send, #ssh_msg_userauth_failure{authentications = "keyboard-interactive",
++ partial_success = false}},
++
++ {match, #ssh_msg_userauth_request{service="ssh-connection",
++ method="keyboard-interactive",
++ user=User,
++ _='_'}, receive_msg},
++ {send, #ssh_msg_userauth_info_request{name = "",
++ instruction = "",
++ language_tag = "",
++ num_prompts = 1,
++ data = <<0,0,0,10,80,97,115,115,119,111,114,100,58,32,0>>
++ }},
++ {match, #ssh_msg_userauth_info_response{num_responses = 1,
++ _='_'}, receive_msg},
++
++ %% the next is strange, but openssh 6.6.1 does this and this is what this testcase is about
++ {send, #ssh_msg_userauth_info_request{name = "",
++ instruction = "",
++ language_tag = "",
++ num_prompts = 0,
++ data = <<>>
++ }},
++ {match, #ssh_msg_userauth_info_response{num_responses = 0,
++ data = <<>>,
++ _='_'}, receive_msg},
++ %% Here we know that the tested fault is fixed
++ {send, #ssh_msg_userauth_success{}},
++ close_socket,
++ print_state
++ ],
++ InitialState)
++ end),
++
++ %% and finally connect to it with a regular Erlang SSH client:
++ {ok,_} = std_connect(HostPort, Config,
++ [{preferred_algorithms,[{kex,['diffie-hellman-group1-sha1']}]}]
++ ).
++
++
+ %%%================================================================
+ %%%==== Internal functions ========================================
+ %%%================================================================
+--- a/lib/ssh/vsn.mk
++++ b/lib/ssh/vsn.mk
+@@ -1,5 +1,5 @@
+ #-*-makefile-*- ; force emacs to enter makefile-mode
+
+-SSH_VSN = 4.2
++SSH_VSN = 4.2.1
+
+ APP_VSN = "ssh-$(SSH_VSN)"
+--- a/otp_versions.table
++++ b/otp_versions.table
+@@ -1,3 +1,4 @@
++OTP-18.2.2 : ssh-4.2.1 # asn1-4.0.1 common_test-1.11.1 compiler-6.0.2 cosEvent-2.2 cosEventDomain-1.2 cosFileTransfer-1.2 cosNotification-1.2 cosProperty-1.2 cosTime-1.2 cosTransactions-1.3 crypto-3.6.2 debugger-4.1.1 dialyzer-2.8.2 diameter-1.11.1 edoc-0.7.17 eldap-1.2 erl_docgen-0.4.1 erl_interface-3.8.1 erts-7.2.1 et-1.5.1 eunit-2.2.12 gs-1.6 hipe-3.14 ic-4.4 inets-6.1 jinterface-1.6.1 kernel-4.1.1 megaco-3.18 mnesia-4.13.2 observer-2.1.1 odbc-2.11.1 orber-3.8 os_mon-2.4 ose-1.1 otp_mibs-1.1 parsetools-2.1.1 percept-0.8.11 public_key-1.1 reltool-0.7 runtime_tools-1.9.2 sasl-2.6.1 snmp-5.2.1 ssl-7.2 stdlib-2.7 syntax_tools-1.7 test_server-3.9.1 tools-2.8.2 typer-0.9.10 webtool-0.9 wx-1.6 xmerl-1.3.9 :
+ OTP-18.2.1 : erts-7.2.1 # asn1-4.0.1 common_test-1.11.1 compiler-6.0.2 cosEvent-2.2 cosEventDomain-1.2 cosFileTransfer-1.2 cosNotification-1.2 cosProperty-1.2 cosTime-1.2 cosTransactions-1.3 crypto-3.6.2 debugger-4.1.1 dialyzer-2.8.2 diameter-1.11.1 edoc-0.7.17 eldap-1.2 erl_docgen-0.4.1 erl_interface-3.8.1 et-1.5.1 eunit-2.2.12 gs-1.6 hipe-3.14 ic-4.4 inets-6.1 jinterface-1.6.1 kernel-4.1.1 megaco-3.18 mnesia-4.13.2 observer-2.1.1 odbc-2.11.1 orber-3.8 os_mon-2.4 ose-1.1 otp_mibs-1.1 parsetools-2.1.1 percept-0.8.11 public_key-1.1 reltool-0.7 runtime_tools-1.9.2 sasl-2.6.1 snmp-5.2.1 ssh-4.2 ssl-7.2 stdlib-2.7 syntax_tools-1.7 test_server-3.9.1 tools-2.8.2 typer-0.9.10 webtool-0.9 wx-1.6 xmerl-1.3.9 :
+ OTP-18.2 : asn1-4.0.1 common_test-1.11.1 compiler-6.0.2 crypto-3.6.2 dialyzer-2.8.2 diameter-1.11.1 erl_docgen-0.4.1 erl_interface-3.8.1 erts-7.2 eunit-2.2.12 hipe-3.14 inets-6.1 jinterface-1.6.1 kernel-4.1.1 observer-2.1.1 parsetools-2.1.1 public_key-1.1 runtime_tools-1.9.2 sasl-2.6.1 snmp-5.2.1 ssh-4.2 ssl-7.2 stdlib-2.7 test_server-3.9.1 tools-2.8.2 typer-0.9.10 wx-1.6 xmerl-1.3.9 # cosEvent-2.2 cosEventDomain-1.2 cosFileTransfer-1.2 cosNotification-1.2 cosProperty-1.2 cosTime-1.2 cosTransactions-1.3 debugger-4.1.1 edoc-0.7.17 eldap-1.2 et-1.5.1 gs-1.6 ic-4.4 megaco-3.18 mnesia-4.13.2 odbc-2.11.1 orber-3.8 os_mon-2.4 ose-1.1 otp_mibs-1.1 percept-0.8.11 reltool-0.7 syntax_tools-1.7 webtool-0.9 :
+ OTP-18.1.5 : ssh-4.1.3 # asn1-4.0 common_test-1.11 compiler-6.0.1 cosEvent-2.2 cosEventDomain-1.2 cosFileTransfer-1.2 cosNotification-1.2 cosProperty-1.2 cosTime-1.2 cosTransactions-1.3 crypto-3.6.1 debugger-4.1.1 dialyzer-2.8.1 diameter-1.11 edoc-0.7.17 eldap-1.2 erl_docgen-0.4 erl_interface-3.8 erts-7.1 et-1.5.1 eunit-2.2.11 gs-1.6 hipe-3.13 ic-4.4 inets-6.0.3 jinterface-1.6 kernel-4.1 megaco-3.18 mnesia-4.13.2 observer-2.1 odbc-2.11.1 orber-3.8 os_mon-2.4 ose-1.1 otp_mibs-1.1 parsetools-2.1 percept-0.8.11 public_key-1.0.1 reltool-0.7 runtime_tools-1.9.1 sasl-2.6 snmp-5.2 ssl-7.1 stdlib-2.6 syntax_tools-1.7 test_server-3.9 tools-2.8.1 typer-0.9.9 webtool-0.9 wx-1.5 xmerl-1.3.8 :