dial: validate peer id

This commit is contained in:
Sergey Cherepanov 2023-07-17 19:29:40 +02:00
parent b1c198df1d
commit 27adabf1b9
No known key found for this signature in database
GPG Key ID: 87F8EDE8FBDF637C

View File

@ -20,7 +20,8 @@ const CName = "net.peerservice"
var log = logger.NewNamed(CName) var log = logger.NewNamed(CName)
var ( var (
ErrAddrsNotFound = errors.New("addrs for peer not found") ErrAddrsNotFound = errors.New("addrs for peer not found")
ErrPeerIdMismatched = errors.New("peerId mismatched")
) )
func New() PeerService { func New() PeerService {
@ -79,6 +80,13 @@ func (p *peerService) Dial(ctx context.Context, peerId string) (pr peer.Peer, er
if err != nil { if err != nil {
return return
} }
connPeerId, err := peer.CtxPeerId(mc.Context())
if err != nil {
return nil, err
}
if connPeerId != peerId {
return nil, ErrPeerIdMismatched
}
return peer.NewPeer(mc, p.server) return peer.NewPeer(mc, p.server)
} }