diff options
author | zeripath <art27@cantab.net> | 2020-06-18 00:29:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-17 19:29:38 -0400 |
commit | 14261266901d388ef1f9709bf342e5a367824a70 (patch) | |
tree | a5c6740296078062083276228219b00be7c2a187 /vendor/golang.org/x/crypto | |
parent | 6bf78d2b576a5caa77a670db9bbf2572d0272f25 (diff) | |
download | gitea-14261266901d388ef1f9709bf342e5a367824a70.tar.gz gitea-14261266901d388ef1f9709bf342e5a367824a70.zip |
Update to go-git v5.1.0 (#11936)
Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'vendor/golang.org/x/crypto')
-rw-r--r-- | vendor/golang.org/x/crypto/ssh/mux.go | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/vendor/golang.org/x/crypto/ssh/mux.go b/vendor/golang.org/x/crypto/ssh/mux.go index f19016270e..9654c01869 100644 --- a/vendor/golang.org/x/crypto/ssh/mux.go +++ b/vendor/golang.org/x/crypto/ssh/mux.go @@ -240,7 +240,7 @@ func (m *mux) onePacket() error { id := binary.BigEndian.Uint32(packet[1:]) ch := m.chanList.getChan(id) if ch == nil { - return fmt.Errorf("ssh: invalid channel %d", id) + return m.handleUnknownChannelPacket(id, packet) } return ch.handlePacket(packet) @@ -328,3 +328,24 @@ func (m *mux) openChannel(chanType string, extra []byte) (*channel, error) { return nil, fmt.Errorf("ssh: unexpected packet in response to channel open: %T", msg) } } + +func (m *mux) handleUnknownChannelPacket(id uint32, packet []byte) error { + msg, err := decode(packet) + if err != nil { + return err + } + + switch msg := msg.(type) { + // RFC 4254 section 5.4 says unrecognized channel requests should + // receive a failure response. + case *channelRequestMsg: + if msg.WantReply { + return m.sendMessage(channelRequestFailureMsg{ + PeersID: msg.PeersID, + }) + } + return nil + default: + return fmt.Errorf("ssh: invalid channel %d", id) + } +} |