status-im / status-protocol-go

Status Protocol implementation in Go
Mozilla Public License 2.0
0 stars 1 forks source link

Verify protocol message decoders with go-fuzz #120

Open adambabik opened 4 years ago

adambabik commented 4 years ago

This library parses transit-encoded messages into structs. It does that using https://github.com/russolsen/transit library which is not very popular and is marked as "in-progress". Currently, it is unknown how the transit library and our decoders behave with odd randomly generated data, hence, we don't know how easy it is to crash the program using status-protocol-go.

Fuzzing is a test technique that runs code with random data and allows to find bugs that would be quite impossible to find manually.

In the Go space, there two projects which can help with fuzzing testing:

The goal of this issue is to verify that the encoders (and the transit library) do not crash when run with random data using fuzzing technique.

Reference