Re: SSH-daemon invalid column calculation at ssh_cli:delete_chars()

Henrik Nord <[email protected]>
Newsgroups gmane.comp.lang.erlang.patches,gmane.comp.lang.erlang.bugs
Message-ID <[email protected]>
Hi Alexander!

I have created a pull request for this to make sure it will get into the 
system and assigned to the proper team etc.

Thank you for your contribution!

On 2013-11-21 03:51, Alexander Demidenko wrote:
> Hello, friends.
>
> How can I see, in the ssh_cli.erl module, delete_chars method 
> incorrectly calculate variable "NewCol".
>
> I can offer the option of a patch that fixes this problem.
> The person who is responsible for supporting ssh has the discretion to 
> take it as it is, or can make own fix.
> Tested by Erlang 16B02, ssh 2.1.8 and R15B02, ssh 2.1.1
>
> hurd@insider:~/Documents/Erlang/reports/ssh_expand_test$ cat ssh.patch
> --- ssh-2.1.1/src/ssh_cli.erl2013-10-26 14:25:26.000000000
> +++ ssh-2.1.2/src/ssh_cli.erl2013-10-26 14:18:18.000000000
> @@ -311,13 +319,14 @@
>      NewBufTail = nthtail(N, BufTail),
>      M = move_cursor(Col + length(NewBufTail) + N, Col, Tty),
>      {[NewBufTail, lists:duplicate(N, $ ) | M],
>       {Buf, NewBufTail, Col}};
>  delete_chars(N, {Buf, BufTail, Col}, Tty) -> % N < 0
>      NewBuf = nthtail(-N, Buf),
> -    NewCol = Col + N,
> +    NewCol = case Col + N of V when V >= 0 -> V; _ -> 0 end,
>      M1 = move_cursor(Col, NewCol, Tty),
>      M2 = move_cursor(NewCol + length(BufTail) - N, NewCol, Tty),
>      {[M1, BufTail, lists:duplicate(-N, $ ) | M2],
>       {NewBuf, BufTail, NewCol}}.
>  %%% Window change, redraw the current line (and clear out after it
>
>
> I attached simple sample, where you can see this problem.
> To run it, compile ssh_manager.erl and invoke "ssh_manager:start()" 
> method to run ssh-daemon.
> Then run simple ssh-client on terminal to localhost on port 9999, and 
> entering the password "test".
> (you need put keys in .ssh folder)
> Below example show trouble with the display of available commands when 
> you press Tab.
>
> At the command prompt "ssh_app:"
> _____________________________________________________
> 1> ssh_app:
> _____________________________________________________
>
> Press tab.
> _____________________________________________________
> 1> ssh_app:
> module_info/0  module_info/1  start/2        stop/1
> 1> ssh_app:
> _____________________________________________________
>
> You will see the line below "module_info/0 module_info/1 start/2 
> stop/1," and below that "ssh_app:".
> Everything is wonderful. Yet.
>
> Do the following: Go to the new line (Press enter) and enter a space 
> as long as the input field team did not go on the line below .
> _____________________________________________________
> 1>
> _____________________________________________________
>
> Enter "ssh_app:"
>
> _____________________________________________________
> 1>
>                        ssh_app:
> _____________________________________________________
>
> Press tab.
> _____________________________________________________
> 1>
>                        ssh_app:
> 1>
>                        ssh_app:
> _____________________________________________________
>
> You will see that the tab has not worked. The string "module_info/0 
> module_info/1 start/2 stop/1" was not withdrawn.
> This is not good.
>
> You still can do the following: Go to the new line (press the button 
> enter) and enter a space as long as the input field team did not go on 
> 2 lines below.
> _____________________________________________________
> 1>
> _____________________________________________________
>
> Enter "ssh_app:".
> ____________________________________________________
> 1>
>                                    ssh_app:
> _____________________________________________________
>
> Press tab.
>
> _____________________________________________________
> 1>
> 1>
>
>                                    ssh_app:
> _____________________________________________________
>
> You will see that the tab has not worked. The string "module_info/0 
> module_info/1 start/2 stop/1" was not withdrawn. This is not good.
>
> -- 
> ---------------------------------------------
> With best regards,
> Alexander.
>
>
> _______________________________________________
> erlang-patches mailing list
> [email protected]
> http://erlang.org/mailman/listinfo/erlang-patches

-- 
/Henrik Nord Erlang/OTP

_______________________________________________
erlang-patches mailing list
[email protected]
http://erlang.org/mailman/listinfo/erlang-patches
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.