diff options
author | Hans Nilsson <[email protected]> | 2018-04-20 11:51:05 +0200 |
---|---|---|
committer | Hans Nilsson <[email protected]> | 2018-04-20 11:51:05 +0200 |
commit | 0343b68b053ee97b2ef70ea07b9aa87e8842c591 (patch) | |
tree | 27e2f211cb8082896699873dce95fa71f2c3f8b7 /lib/ssh | |
parent | f15f615f9185077b02c011ac28257e8365c01e75 (diff) | |
parent | f2c1d537dc28ffbde5d42aedec70bf4c6574c3ea (diff) | |
download | otp-0343b68b053ee97b2ef70ea07b9aa87e8842c591.tar.gz otp-0343b68b053ee97b2ef70ea07b9aa87e8842c591.tar.bz2 otp-0343b68b053ee97b2ef70ea07b9aa87e8842c591.zip |
Merge branch 'maint-20' into maint
* maint-20:
Updated OTP version
Prepare release
erl_interface: Optimize latin1_to_utf8 and friend
inets: Fix broken httpc options handling
erl_interface: Fix ei_connect
ssh: Fix server crashes for exit-normal signals
ssh: Fix ssh_sftpd:handle_op not returning State
ic: Optimize oe_ei_encode_atom
Diffstat (limited to 'lib/ssh')
-rw-r--r-- | lib/ssh/doc/src/notes.xml | 23 | ||||
-rw-r--r-- | lib/ssh/src/ssh_connection_handler.erl | 17 | ||||
-rw-r--r-- | lib/ssh/vsn.mk | 2 |
3 files changed, 39 insertions, 3 deletions
diff --git a/lib/ssh/doc/src/notes.xml b/lib/ssh/doc/src/notes.xml index 1bba667f0f..1453141811 100644 --- a/lib/ssh/doc/src/notes.xml +++ b/lib/ssh/doc/src/notes.xml @@ -30,6 +30,29 @@ <file>notes.xml</file> </header> +<section><title>Ssh 4.6.8</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + An ssh_sftp server (running version 6) could fail if it + is told to remove a file which in fact is a directory.</p> + <p> + Own Id: OTP-15004</p> + </item> + <item> + <p> + Fix rare spurios shutdowns of ssh servers when receiveing + <c>{'EXIT',_,normal}</c> messages.</p> + <p> + Own Id: OTP-15018</p> + </item> + </list> + </section> + +</section> + <section><title>Ssh 4.6.7</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/ssh/src/ssh_connection_handler.erl b/lib/ssh/src/ssh_connection_handler.erl index e11d3adee4..ad23d82ea8 100644 --- a/lib/ssh/src/ssh_connection_handler.erl +++ b/lib/ssh/src/ssh_connection_handler.erl @@ -1379,8 +1379,21 @@ handle_event(info, {'DOWN', _Ref, process, ChannelPid, _Reason}, _, D0) -> {keep_state, D, Repls}; %%% So that terminate will be run when supervisor is shutdown -handle_event(info, {'EXIT', _Sup, Reason}, _, _) -> - {stop, {shutdown, Reason}}; +handle_event(info, {'EXIT', _Sup, Reason}, StateName, _) -> + Role = role(StateName), + if + Role == client -> + %% OTP-8111 tells this function clause fixes a problem in + %% clients, but there were no check for that role. + {stop, {shutdown, Reason}}; + + Reason == normal -> + %% An exit normal should not cause a server to crash. This has happend... + keep_state_and_data; + + true -> + {stop, {shutdown, Reason}} + end; handle_event(info, check_cache, _, D) -> {keep_state, cache_check_set_idle_timer(D)}; diff --git a/lib/ssh/vsn.mk b/lib/ssh/vsn.mk index d5eed0b087..f327d2ec11 100644 --- a/lib/ssh/vsn.mk +++ b/lib/ssh/vsn.mk @@ -1,4 +1,4 @@ #-*-makefile-*- ; force emacs to enter makefile-mode -SSH_VSN = 4.6.7 +SSH_VSN = 4.6.8 APP_VSN = "ssh-$(SSH_VSN)" |