aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssh/src/ssh_sftp.erl
diff options
context:
space:
mode:
authorHans Nilsson <[email protected]>2015-06-22 19:53:03 +0200
committerHans Nilsson <[email protected]>2015-06-30 13:20:26 +0200
commit747e32d7e5cfcd580da0a57e94cf9fda7adfb6e3 (patch)
tree97e92c53cd9dc0ca009538485d5fabb6e04c3c7b /lib/ssh/src/ssh_sftp.erl
parentab5fa21f07203af27d5c685c9698de5149eae8d0 (diff)
downloadotp-747e32d7e5cfcd580da0a57e94cf9fda7adfb6e3.tar.gz
otp-747e32d7e5cfcd580da0a57e94cf9fda7adfb6e3.tar.bz2
otp-747e32d7e5cfcd580da0a57e94cf9fda7adfb6e3.zip
ssh: correct sftp unicode and iolist bug
Ssh_sftp.erl handled incorrectly unicode data in ssh_ftp:write_file. There was also problems with some deeper iolists.
Diffstat (limited to 'lib/ssh/src/ssh_sftp.erl')
-rw-r--r--lib/ssh/src/ssh_sftp.erl5
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/ssh/src/ssh_sftp.erl b/lib/ssh/src/ssh_sftp.erl
index 9fe2d56759..dbacf730cc 100644
--- a/lib/ssh/src/ssh_sftp.erl
+++ b/lib/ssh/src/ssh_sftp.erl
@@ -439,7 +439,7 @@ write_file(Pid, Name, List) ->
write_file(Pid, Name, List, ?FILEOP_TIMEOUT).
write_file(Pid, Name, List, FileOpTimeout) when is_list(List) ->
- write_file(Pid, Name, unicode:characters_to_binary(List), FileOpTimeout);
+ write_file(Pid, Name, list_to_binary(List), FileOpTimeout);
write_file(Pid, Name, Bin, FileOpTimeout) ->
case open(Pid, Name, [write, binary], FileOpTimeout) of
{ok, Handle} ->
@@ -611,8 +611,7 @@ do_handle_call({pread,Async,Handle,At,Length}, From, State) ->
fun({ok,Data}, State2) ->
case get_mode(Handle, State2) of
binary -> {{ok,Data}, State2};
- text ->
- {{ok,unicode:characters_to_list(Data)}, State2}
+ text -> {{ok,binary_to_list(Data)}, State2}
end;
(Rep, State2) ->
{Rep, State2}