[erlang-patches] Putty and erlang sshd fix
Peter Lund
erlang@REDACTED
Tue Jan 29 11:09:25 CET 2008
I guess we should send this here as well...
/Peter
Peter Lund wrote:
> Testade med putty 0.59 och 0.60, men ssh_sshd servern krashade
> fortfarande.
> Servern krashar då putty skickar en ensam tvåa <<2>> (SSH_MSG_IGNORE) men
> servern förväntar sig en sträng efter IGNORE.
>
> Själv la jag till ytterligare en patch för att få servern att
> acceptera både en
> ensam IGNORE och en IGNORE med en sträng. Med patchen neda fick jag
> ssh att funka.
Known 0.59 putty bug, putyy skickar IGNORE utan extra data. Om vi ska
vara putty
bug-kompatibla så är din patch nästan ok. För att #ssh_msg_ignore{} ska
bli rätt måste
dock patchen se ut som:
Index: ssh_bits.erl
===================================================================
--- ssh_bits.erl (revision 14434)
+++ ssh_bits.erl (working copy)
@@ -259,11 +259,16 @@
<<_:Offset/binary, _:16, _:Pad, X:Bits/big-unsigned-integer,
_/binary>> = Binary,
decode(Binary, Offset+2+L, Ts, [X | Acc]);
-
string ->
- <<_:Offset/binary,?UINT32(L), X:L/binary,_/binary>> = Binary,
- decode(Binary, Offset+4+L, Ts, [binary_to_list(X) | Acc]);
-
+ Size = size(Binary),
+ if Size < Offset + 4 ->
+ %% empty string at end
+ {Size, reverse(["" | Acc])};
+ true ->
+ <<_:Offset/binary,?UINT32(L), X:L/binary,_/binary>> =
+ Binary,
+ decode(Binary, Offset+4+L, Ts, [binary_to_list(X) |
Acc])
+ end;
binary ->
<<_:Offset/binary,?UINT32(L), X:L/binary,_/binary>> = Binary,
decode(Binary, Offset+4+L, Ts, [X | Acc]);
/klacke
More information about the erlang-patches
mailing list