f82653cb06
This allows gofuzz to store the mutating input as coverage if it reaches any new coverage, even if it didn't make it to the end of the test.
31 lines
662 B
Go
31 lines
662 B
Go
// +build gofuzz
|
|
|
|
package brontidefuzz
|
|
|
|
import (
|
|
"github.com/lightningnetwork/lnd/brontide"
|
|
)
|
|
|
|
// Fuzz_static_actone is a go-fuzz harness for ActOne in the brontide
|
|
// handshake.
|
|
func Fuzz_static_actone(data []byte) int {
|
|
// Check if data is large enough.
|
|
if len(data) < brontide.ActOneSize {
|
|
return 1
|
|
}
|
|
|
|
// This will return brontide machines with static keys.
|
|
_, responder := getStaticBrontideMachines()
|
|
|
|
// Copy data into [ActOneSize]byte.
|
|
var actOne [brontide.ActOneSize]byte
|
|
copy(actOne[:], data)
|
|
|
|
// Responder receives ActOne, should fail.
|
|
if err := responder.RecvActOne(actOne); err == nil {
|
|
nilAndPanic(nil, responder, nil)
|
|
}
|
|
|
|
return 1
|
|
}
|