don't reprovide inssecure hashes
License: MIT Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
Jakub Sztandera committed
Mar 5, 2018 at 02:58 UTC
45272790a2bf9b815b8d201e96f7e4489e40bab3
1 file changed
+7
exchange/reprovide/reprovide.go
+7
@@ -5,6 +5,8 @@ import (
5
"fmt"
6
"time"
7
8
+ "github.com/ipfs/go-ipfs/thirdparty/verifcid"
9
+
10
backoff "gx/ipfs/QmPJUtEJsm5YLUWhF6imvyCH8KZXRJa9Wup7FDMwTy5Ufz/backoff"
11
logging "gx/ipfs/QmRb5jh8z2E8hMGN2tkvs1yHynUanqnZ3UeKwgN1i9P1F8/go-log"
12
routing "gx/ipfs/QmTiWLZ6Fo5j4KcTVutZJ5KWRRJrbxzmxA4td8NfEdrPh7/go-libp2p-routing"
@@ -83,6 +85,11 @@ func (rp *Reprovider) Reprovide() error {
85
return fmt.Errorf("Failed to get key chan: %s", err)
86
}
87
for c := range keychan {
88
+ // hash security
89
+ if err := verifcid.ValidateCid(c); err != nil {
90
+ log.Errorf("insecure hash in reprovider, %s (%s)", c, err)
91
+ continue
92
+ }
93
op := func() error {
94
err := rp.rsys.Provide(rp.ctx, c, true)
95
if err != nil {