@cryptotaxi247 / kubo / commits / 64a431dd3

ensure we only accept AddProvider records if the peer is the sender

Brian Tiger Chow committed Feb 4, 2015 at 04:27 UTC 64a431dd3264a0c4e3c0d74823b8ecf06ad16b99
1 file changed +11 -4
routing/supernode/server.go
+11 -4
@@ -71,10 +71,17 @@ func (s *Server) handleMessage(
71 return p.ID, response
72
73 case dhtpb.Message_ADD_PROVIDER:
74 - storeProvidersToPeerstore(s.peerstore, p, req.GetProviderPeers())
75 -
76 - if err := putRoutingProviders(s.routingBackend, util.Key(req.GetKey()), req.GetProviderPeers()); err != nil {
77 - return "", nil
74 + for _, provider := range req.GetProviderPeers() {
75 + providerID := peer.ID(provider.GetId())
76 + if providerID == p {
77 + store := []*dhtpb.Message_Peer{provider}
78 + storeProvidersToPeerstore(s.peerstore, p, store)
79 + if err := putRoutingProviders(s.routingBackend, util.Key(req.GetKey()), store); err != nil {
80 + return "", nil
81 + }
82 + } else {
83 + log.Event(ctx, "addProviderBadRequest", p, req)
84 + }
85 }
86 return "", nil
87