go.crypto/ssh: add a error return to decode(), and avoid casting decode() output.
R=dave, kardianos, agl CC=gobot, golang-dev https://golang.org/cl/9738053
This commit is contained in:
committed by
Adam Langley
parent
e8889f5e72
commit
36bf31eb71
+5
-4
@@ -562,7 +562,11 @@ func (s *ServerConn) Accept() (Channel, error) {
|
||||
}
|
||||
s.lock.Unlock()
|
||||
default:
|
||||
switch msg := decode(packet).(type) {
|
||||
decoded, err := decode(packet)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
switch msg := decoded.(type) {
|
||||
case *channelOpenMsg:
|
||||
if msg.MaxPacketSize < minPacketLength || msg.MaxPacketSize > 1<<31 {
|
||||
return nil, errors.New("ssh: invalid MaxPacketSize from peer")
|
||||
@@ -643,9 +647,6 @@ func (s *ServerConn) Accept() (Channel, error) {
|
||||
return nil, err
|
||||
}
|
||||
s.lock.Unlock()
|
||||
|
||||
case UnexpectedMessageError:
|
||||
return nil, msg
|
||||
case *disconnectMsg:
|
||||
return nil, io.EOF
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user