From 05eae4f31250d085602a86074dd278a8861fb567 Mon Sep 17 00:00:00 2001 From: lash Date: Thu, 13 Dec 2018 13:34:46 +0100 Subject: [PATCH] swarm/pss: Add address check in sendRaw --- swarm/pss/pss.go | 3 +++ swarm/pss/pss_test.go | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/swarm/pss/pss.go b/swarm/pss/pss.go index 40bb408fa4..4e68a62273 100644 --- a/swarm/pss/pss.go +++ b/swarm/pss/pss.go @@ -759,6 +759,9 @@ func (p *Pss) enqueue(msg *PssMsg) error { // // Will fail if raw messages are disallowed func (p *Pss) SendRaw(address PssAddress, topic Topic, msg []byte) error { + if !checkAddress(&address) { + return errors.New("invalid address") + } pssMsgParams := &msgParams{ raw: true, } diff --git a/swarm/pss/pss_test.go b/swarm/pss/pss_test.go index 0f25c85d3b..a666bfd8d9 100644 --- a/swarm/pss/pss_test.go +++ b/swarm/pss/pss_test.go @@ -1028,6 +1028,12 @@ func TestApi(t *testing.T) { if err == nil { t.Fatal("expected error on empty msg") } + + overflowAddr := [33]byte{} + err = clients[0].Call(nil, "pss_sendRaw", hexutil.Encode(overflowAddr[:]), topic, "0x666f6f") + if err == nil { + t.Fatal("expected error on send too big address") + } } // verifies that nodes can send and receive raw (verbatim) messages