summaryrefslogtreecommitdiffstats
path: root/cmd/syncthing/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/syncthing/main.go')
-rw-r--r--cmd/syncthing/main.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/cmd/syncthing/main.go b/cmd/syncthing/main.go
index 445dc3ac00..6e19a9b5b4 100644
--- a/cmd/syncthing/main.go
+++ b/cmd/syncthing/main.go
@@ -429,7 +429,13 @@ func listenConnect(myID string, disc *discover.Discoverer, m *Model, tlsCfg *tls
next:
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 {
warnf("Connected to myself (%s) - should not happen", remoteID)