mirror of
https://github.com/logos-messaging/go-libp2p-pubsub.git
synced 2026-01-02 12:53:09 +00:00
Missing flood protection check for number of message IDs when handling Ihave messages (#560)
* check msgIDs in Ihave per topic * remove coments as suggested
This commit is contained in:
parent
dbd1c9eade
commit
8e498e9e96
10
gossipsub.go
10
gossipsub.go
@ -688,7 +688,6 @@ func (gs *GossipSubRouter) handleIHave(p peer.ID, ctl *pb.ControlMessage) []*pb.
|
||||
log.Debugf("IHAVE: peer %s has advertised too many times (%d) within this heartbeat interval; ignoring", p, gs.peerhave[p])
|
||||
return nil
|
||||
}
|
||||
|
||||
if gs.iasked[p] >= gs.params.MaxIHaveLength {
|
||||
log.Debugf("IHAVE: peer %s has already advertised too many messages (%d); ignoring", p, gs.iasked[p])
|
||||
return nil
|
||||
@ -706,7 +705,14 @@ func (gs *GossipSubRouter) handleIHave(p peer.ID, ctl *pb.ControlMessage) []*pb.
|
||||
continue
|
||||
}
|
||||
|
||||
for _, mid := range ihave.GetMessageIDs() {
|
||||
checkIwantMsgsLoop:
|
||||
for msgIdx, mid := range ihave.GetMessageIDs() {
|
||||
// prevent remote peer from sending too many msg_ids on a single IHAVE message
|
||||
if msgIdx >= gs.params.MaxIHaveLength {
|
||||
log.Debugf("IHAVE: peer %s has sent IHAVE on topic %s with too many messages (%d); ignoring remaining msgs", p, topic, len(ihave.MessageIDs))
|
||||
break checkIwantMsgsLoop
|
||||
}
|
||||
|
||||
if gs.p.seenMessage(mid) {
|
||||
continue
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user