Do not crash on TLS connection without certificate

This commit is contained in:
Jakob Borg 2014-04-08 21:31:23 +02:00
parent d3915b8dbf
commit a6ed76e714

View File

@ -429,7 +429,13 @@ func listenConnect(myID string, disc *discover.Discoverer, m *Model, tlsCfg *tls
next: next:
for conn := range conns { for conn := range conns {
remoteID := certID(conn.ConnectionState().PeerCertificates[0].Raw) certs := conn.ConnectionState().PeerCertificates
if l := len(certs); l != 1 {
warnf("Got peer certificate list of length %d != 1; protocol error", l)
conn.Close()
continue
}
remoteID := certID(certs[0].Raw)
if remoteID == myID { if remoteID == myID {
warnf("Connected to myself (%s) - should not happen", remoteID) warnf("Connected to myself (%s) - should not happen", remoteID)