capability: prevent panic on wrong capabilities receival
panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0xad7b95] goroutine 134 [running]: github.com/nspcc-dev/neo-go/pkg/network/capability.(*Capability).DecodeBinary(0xc00024a300, 0xc00015c900) /home/rik/dev/neo-go/pkg/network/capability/capability.go:69 +0x85 github.com/nspcc-dev/neo-go/pkg/io.(*BinReader).ReadArray(0xc00015c900, 0xd54880, 0xc00018ecd8, 0xc00071fbe0, 0x1, 0x1) /home/rik/dev/neo-go/pkg/io/binaryReader.go:141 +0x22f github.com/nspcc-dev/neo-go/pkg/network/capability.(*Capabilities).DecodeBinary(0xc00018ecd8, 0xc00015c900) /home/rik/dev/neo-go/pkg/network/capability/capability.go:17 +0x6d github.com/nspcc-dev/neo-go/pkg/network/payload.(*AddressAndTime).DecodeBinary(0xc00018ecc0, 0xc00015c900) /home/rik/dev/neo-go/pkg/network/payload/address.go:34 +0x59 github.com/nspcc-dev/neo-go/pkg/io.(*BinReader).ReadArray(0xc00015c900, 0xcb9e00, 0xc00024a2a0, 0x0, 0x0, 0x0) /home/rik/dev/neo-go/pkg/io/binaryReader.go:141 +0x22f github.com/nspcc-dev/neo-go/pkg/network/payload.(*AddressList).DecodeBinary(0xc00024a2a0, 0xc00015c900) /home/rik/dev/neo-go/pkg/network/payload/address.go:78 +0x54 github.com/nspcc-dev/neo-go/pkg/network.(*Message).decodePayload(0xc000277890, 0xc000292020, 0xc0003da000) /home/rik/dev/neo-go/pkg/network/message.go:158 +0x31a github.com/nspcc-dev/neo-go/pkg/network.(*Message).Decode(0xc000277890, 0xc00071ff48, 0xc00036e090, 0xc000276e40) /home/rik/dev/neo-go/pkg/network/message.go:114 +0x19b github.com/nspcc-dev/neo-go/pkg/network.(*TCPPeer).handleConn(0xc00036e090) /home/rik/dev/neo-go/pkg/network/tcp_peer.go:154 +0x244 created by github.com/nspcc-dev/neo-go/pkg/network.(*TCPTransport).Dial /home/rik/dev/neo-go/pkg/network/tcp_transport.go:40 +0x1ad
This commit is contained in:
parent
ad74cd7273
commit
56b24bf83e
1 changed files with 1 additions and 0 deletions
|
@ -65,6 +65,7 @@ func (c *Capability) DecodeBinary(br *io.BinReader) {
|
|||
c.Data = &Server{}
|
||||
default:
|
||||
br.Err = errors.New("unknown node capability type")
|
||||
return
|
||||
}
|
||||
c.Data.DecodeBinary(br)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue