From 45272790a2bf9b815b8d201e96f7e4489e40bab3 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Mon, 5 Mar 2018 02:58:08 +0100 Subject: [PATCH] don't reprovide inssecure hashes License: MIT Signed-off-by: Jakub Sztandera --- exchange/reprovide/reprovide.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/exchange/reprovide/reprovide.go b/exchange/reprovide/reprovide.go index 1b573ef1b..b01da5a3a 100644 --- a/exchange/reprovide/reprovide.go +++ b/exchange/reprovide/reprovide.go @@ -5,6 +5,8 @@ import ( "fmt" "time" + "github.com/ipfs/go-ipfs/thirdparty/verifcid" + backoff "gx/ipfs/QmPJUtEJsm5YLUWhF6imvyCH8KZXRJa9Wup7FDMwTy5Ufz/backoff" logging "gx/ipfs/QmRb5jh8z2E8hMGN2tkvs1yHynUanqnZ3UeKwgN1i9P1F8/go-log" routing "gx/ipfs/QmTiWLZ6Fo5j4KcTVutZJ5KWRRJrbxzmxA4td8NfEdrPh7/go-libp2p-routing" @@ -83,6 +85,11 @@ func (rp *Reprovider) Reprovide() error { return fmt.Errorf("Failed to get key chan: %s", err) } for c := range keychan { + // hash security + if err := verifcid.ValidateCid(c); err != nil { + log.Errorf("insecure hash in reprovider, %s (%s)", c, err) + continue + } op := func() error { err := rp.rsys.Provide(rp.ctx, c, true) if err != nil {