mirror of
https://github.com/pion/stun.git
synced 2025-09-26 20:01:18 +08:00
Replace go-fuzz by Go's built-in fuzz tooling
As introduced by Go 1.18 Co-authored-by: Atsushi Watanabe <atsushi.w@ieee.org>
This commit is contained in:
3
.github/.ci.conf
vendored
3
.github/.ci.conf
vendored
@@ -6,9 +6,6 @@ DISALLOWED_FUNCTIONS_EXCLUDED_DIRECTORIES="cmd example"
|
||||
function _test_hook(){
|
||||
set -e
|
||||
|
||||
# test fuzz inputs
|
||||
go test -tags gofuzz -run TestFuzz -v .
|
||||
|
||||
# test with "debug" tag
|
||||
go test -tags debug ./...
|
||||
|
||||
|
19
Makefile
19
Makefile
@@ -9,22 +9,6 @@ bench:
|
||||
go test -bench .
|
||||
bench-record:
|
||||
$(GO) test -bench . > "benchmarks/stun-go-$(GO_VERSION).txt"
|
||||
fuzz-prepare-msg:
|
||||
go-fuzz-build -func FuzzMessage -o stun-msg-fuzz.zip github.com/pion/stun
|
||||
fuzz-prepare-typ:
|
||||
go-fuzz-build -func FuzzType -o stun-typ-fuzz.zip github.com/pion/stun
|
||||
fuzz-prepare-setters:
|
||||
go-fuzz-build -func FuzzSetters -o stun-setters-fuzz.zip github.com/pion/stun
|
||||
fuzz-msg:
|
||||
go-fuzz -bin=./stun-msg-fuzz.zip -workdir=fuzz/stun-msg
|
||||
fuzz-typ:
|
||||
go-fuzz -bin=./stun-typ-fuzz.zip -workdir=fuzz/stun-typ
|
||||
fuzz-setters:
|
||||
go-fuzz -bin=./stun-setters-fuzz.zip -workdir=fuzz/stun-setters
|
||||
fuzz-test:
|
||||
go test -tags gofuzz -run TestFuzz -v .
|
||||
fuzz-reset-setters:
|
||||
rm -f -v -r stun-setters-fuzz.zip fuzz/stun-setters
|
||||
lint:
|
||||
@golangci-lint run ./...
|
||||
@echo "ok"
|
||||
@@ -39,9 +23,6 @@ bench-compare:
|
||||
go test -bench . > bench.go-16
|
||||
go-tip test -bench . > bench.go-tip
|
||||
@benchcmp bench.go-16 bench.go-tip
|
||||
install-fuzz:
|
||||
go get -u github.com/dvyukov/go-fuzz/go-fuzz-build
|
||||
go get github.com/dvyukov/go-fuzz/go-fuzz
|
||||
install:
|
||||
go get gortc.io/api
|
||||
go get -u github.com/golangci/golangci-lint/cmd/golangci-lint
|
||||
|
139
fuzz.go
139
fuzz.go
@@ -1,139 +0,0 @@
|
||||
// +build gofuzz
|
||||
|
||||
package stun
|
||||
|
||||
import (
|
||||
"encoding/binary"
|
||||
"errors"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
var m = New()
|
||||
|
||||
// FuzzMessage is go-fuzz endpoint for message.
|
||||
func FuzzMessage(data []byte) int {
|
||||
m.Reset()
|
||||
// fuzzer dont know about cookies
|
||||
binary.BigEndian.PutUint32(data[4:8], magicCookie)
|
||||
// trying to read data as message
|
||||
if _, err := m.Write(data); err != nil {
|
||||
return 0
|
||||
}
|
||||
m2 := New()
|
||||
if _, err := m2.Write(m.Raw); err != nil {
|
||||
panic(err) // nolint
|
||||
}
|
||||
if m2.TransactionID != m.TransactionID {
|
||||
panic("transaction ID mismatch") // nolint
|
||||
}
|
||||
if m2.Type != m.Type {
|
||||
panic("type missmatch") // nolint
|
||||
}
|
||||
if len(m2.Attributes) != len(m.Attributes) {
|
||||
panic("attributes length missmatch") // nolint
|
||||
}
|
||||
return 1
|
||||
}
|
||||
|
||||
// FuzzType is go-fuzz endpoint for message type.
|
||||
func FuzzType(data []byte) int {
|
||||
t := MessageType{}
|
||||
vt, _ := binary.Uvarint(data)
|
||||
v := uint16(vt) & 0x1fff // first 3 bits are empty
|
||||
t.ReadValue(v)
|
||||
v2 := t.Value()
|
||||
if v != v2 {
|
||||
panic("v != v2") // nolint
|
||||
}
|
||||
t2 := MessageType{}
|
||||
t2.ReadValue(v2)
|
||||
if t2 != t {
|
||||
panic("t2 != t") // nolint
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type attr interface {
|
||||
Getter
|
||||
Setter
|
||||
}
|
||||
|
||||
type attrs []struct {
|
||||
g attr
|
||||
t AttrType
|
||||
}
|
||||
|
||||
func (a attrs) pick(v byte) struct {
|
||||
g attr
|
||||
t AttrType
|
||||
} {
|
||||
idx := int(v) % len(a)
|
||||
return a[idx]
|
||||
}
|
||||
|
||||
func FuzzSetters(data []byte) int {
|
||||
var (
|
||||
m1 = &Message{
|
||||
Raw: make([]byte, 0, 2048),
|
||||
}
|
||||
m2 = &Message{
|
||||
Raw: make([]byte, 0, 2048),
|
||||
}
|
||||
m3 = &Message{
|
||||
Raw: make([]byte, 0, 2048),
|
||||
}
|
||||
)
|
||||
attributes := attrs{
|
||||
{new(Realm), AttrRealm},
|
||||
{new(XORMappedAddress), AttrXORMappedAddress},
|
||||
{new(Nonce), AttrNonce},
|
||||
{new(Software), AttrSoftware},
|
||||
{new(AlternateServer), AttrAlternateServer},
|
||||
{new(ErrorCodeAttribute), AttrErrorCode},
|
||||
{new(UnknownAttributes), AttrUnknownAttributes},
|
||||
{new(Username), AttrUsername},
|
||||
{new(MappedAddress), AttrMappedAddress},
|
||||
{new(Realm), AttrRealm},
|
||||
}
|
||||
firstByte := byte(0)
|
||||
if len(data) > 0 {
|
||||
firstByte = data[0]
|
||||
}
|
||||
a := attributes.pick(firstByte)
|
||||
value := data
|
||||
if len(data) > 1 {
|
||||
value = value[1:]
|
||||
}
|
||||
m1.WriteHeader()
|
||||
m1.Add(a.t, value)
|
||||
err := a.g.GetFrom(m1)
|
||||
if errors.Is(err, ErrAttributeNotFound) {
|
||||
fmt.Println("unexpected 404") // nolint
|
||||
panic(err) // nolint
|
||||
}
|
||||
if err != nil {
|
||||
return 1
|
||||
}
|
||||
m2.WriteHeader()
|
||||
if err = a.g.AddTo(m2); err != nil {
|
||||
// We allow decoding some text attributes
|
||||
// when their length is too big, but
|
||||
// not encoding.
|
||||
if !IsAttrSizeOverflow(err) {
|
||||
panic(err) // nolint
|
||||
}
|
||||
return 1
|
||||
}
|
||||
m3.WriteHeader()
|
||||
v, err := m2.Get(a.t)
|
||||
if err != nil {
|
||||
panic(err) // nolint
|
||||
}
|
||||
m3.Add(a.t, v)
|
||||
|
||||
if !m2.Equal(m3) {
|
||||
fmt.Println(m2, "not equal", m3) // nolint
|
||||
panic("not equal") // nolint
|
||||
}
|
||||
return 1
|
||||
}
|
@@ -1,3 +0,0 @@
|
||||
# Fuzzer corpus
|
||||
|
||||
fuzz directory contains corpus for fuzzer.
|
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
|
||||
bHnary.L+infinityndi
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
|
||||
145519152283668U806
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,14 +0,0 @@
|
||||
panic: BadFormat for message/cookie: 0 is invalid magic cookie (should be 2112a442)
|
||||
|
||||
goroutine 1 [running]:
|
||||
github.com/pion/stun.FuzzMessage(0x7f2282f33000, 0x14, 0x200000, 0xc42000c740)
|
||||
/tmp/go-fuzz-build544265286/gopath/src/github.com/pion/stun/fuzz.go:21 +0x356
|
||||
go-fuzz-dep.Main(0x511330)
|
||||
/tmp/go-fuzz-build544265286/goroot/src/go-fuzz-dep/main.go:49 +0xde
|
||||
main.main()
|
||||
/tmp/go-fuzz-build544265286/gopath/src/github.com/pion/stun/go.fuzz.main/main.go:10 +0x2d
|
||||
|
||||
goroutine 17 [syscall, locked to thread]:
|
||||
runtime.goexit()
|
||||
/tmp/go-fuzz-build544265286/goroot/src/runtime/asm_amd64.s:2197 +0x1
|
||||
exit status 2
|
@@ -1 +0,0 @@
|
||||
"00\x00\x000000000000000000"
|
@@ -1,4 +0,0 @@
|
||||
panic: BadFormat for message/cookie: 0 is invalid magic cookie (should be 2112a442)
|
||||
github.com/pion/stun.FuzzMessage
|
||||
go-fuzz-dep.Main
|
||||
main.main
|
@@ -1 +0,0 @@
|
||||
~<7E><><EFBFBD>^L.
|
@@ -1 +0,0 @@
|
||||
8N_eX6_xy_g_3_.t> HcSg__j_Wi3_YV_4oalCf6U90ZzDyR_zh
|
@@ -1 +0,0 @@
|
||||
t.xcount > 0G
|
@@ -1 +0,0 @@
|
||||
t<EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD><EFBFBD><01>yp.size >amd64p32 4G
|
@@ -1 +0,0 @@
|
||||
8N_eX6_xy_g_3_._7943P6Sn6z2_a_w74tPp9a_nf4A__Z__SUo_iRi1__luyG4_H0y__qsrUYi5Q9WvPpw25nK9_nZK4_9i5t_4Z_5im8e_5aW0> HcSg__j_Wi3_YV_4oalCf6U90ZzDyR_zh
|
@@ -1 +0,0 @@
|
||||
t.xcount >t.0N59lpU_n47gwRq6d0DS__j_wW__9Qu4Oz__uXMR7_g5__O_m__C_4 > 0G0G
|
@@ -1 +0,0 @@
|
||||
G
|
@@ -1 +0,0 @@
|
||||
t.gsErP_IH_ol7_mN7_8_r43e_tKnO__a_9TwJV7G_rjz8_c_Mq3y_5H__61__ >tt.xcount >txcount0N59lpU_n47gwRq6d0DS__j_wW__9Qu4Oz__uXMR7_g5__O_m__C_4 > 0G0G0N59lpU_n47gwRq6d0DS__j_wW__9Qu4Oz__uXMR7_g5__O_m__C_4 > 0G0G
|
Binary file not shown.
@@ -1 +0,0 @@
|
||||
t t.xcount >8_Q.0N59lpU_n47gwRq6d0DS__j_wW__9Qu4Oz__uXMR7_g5__O_m__C_4 >0G0G5R_Jk3K_4C___7__6AksK_1_EnJk__nhuq_t_L_8Bs_hP7D___bz_MaN587__c_ArhrW_F_11KJ_j7u1_5W8._7943P6Sn6z2_a_w74tPp9a_nf4A__Z__SUo_iRi1__luyG4_H0y__qsrUYi5Q9WvPpw25nK9_nZK4_9i5t_4Z_5im8e_5aW0> HcSg__j_Wi3_YV_4oalCf6U90ZzDyR_zh0G
|
@@ -1 +0,0 @@
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ソソ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><EFBFBD>نϽ<EFBFBD>ソソソソ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
@@ -1 +0,0 @@
|
||||
<EFBFBD><EFBFBD><EFBFBD>
|
@@ -1 +0,0 @@
|
||||
<EFBFBD>\
|
@@ -1 +0,0 @@
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><EFBFBD><EFBFBD>
|
@@ -1 +0,0 @@
|
||||
<EFBFBD>
|
@@ -1 +0,0 @@
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD>ソソソソ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
@@ -1 +0,0 @@
|
||||
signal: interrupt
|
@@ -1,5 +0,0 @@
|
||||
panic: v != v2
|
||||
panic
|
||||
github.com/cydev/stun.FuzzType
|
||||
go-fuzz-dep.Main
|
||||
main.main
|
@@ -1 +0,0 @@
|
||||
signal: interrupt
|
191
fuzz_test.go
191
fuzz_test.go
@@ -1,96 +1,151 @@
|
||||
// +build gofuzz
|
||||
|
||||
package stun
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"encoding/binary"
|
||||
"errors"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestMessageType_FuzzerCrash1(t *testing.T) {
|
||||
input := []byte("\x9c\xbe\x03")
|
||||
FuzzType(input)
|
||||
func FuzzMessage(f *testing.F) {
|
||||
msg1 := New()
|
||||
|
||||
f.Fuzz(func(t *testing.T, data []byte) {
|
||||
msg1.Reset()
|
||||
|
||||
// Fuzzer does not know about cookies
|
||||
if len(data) >= 8 {
|
||||
binary.BigEndian.PutUint32(data[4:8], magicCookie)
|
||||
}
|
||||
|
||||
// Trying to read data as message
|
||||
if _, err := msg1.Write(data); err != nil {
|
||||
return // We expect invalid messages to fail here
|
||||
}
|
||||
|
||||
msg2 := New()
|
||||
if _, err := msg2.Write(msg1.Raw); err != nil {
|
||||
t.Fatalf("Failed to write: %s", err)
|
||||
}
|
||||
|
||||
if msg2.TransactionID != msg1.TransactionID {
|
||||
t.Fatal("Transaction ID mismatch")
|
||||
}
|
||||
|
||||
if msg2.Type != msg1.Type {
|
||||
t.Fatal("Type mismatch")
|
||||
}
|
||||
|
||||
if len(msg2.Attributes) != len(msg1.Attributes) {
|
||||
t.Fatal("Attributes length mismatch")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func TestMessageCrash2(t *testing.T) {
|
||||
input := []byte("00\x00\x000000000000000000")
|
||||
FuzzMessage(input)
|
||||
func FuzzType(f *testing.F) {
|
||||
f.Fuzz(func(t *testing.T, data uint16) {
|
||||
v := data & 0x1fff // First 3 bits are empty
|
||||
|
||||
t1 := MessageType{}
|
||||
t1.ReadValue(v)
|
||||
v2 := t1.Value()
|
||||
if v != v2 {
|
||||
t.Fatal("v != v2")
|
||||
}
|
||||
|
||||
t2 := MessageType{}
|
||||
t2.ReadValue(v2)
|
||||
if t2 != t1 {
|
||||
t.Fatal("t2 != t1")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func corpus(t *testing.T, function, typ string) [][]byte {
|
||||
var data [][]byte
|
||||
p := filepath.Join("fuzz", function, typ)
|
||||
f, err := os.Open(p)
|
||||
if err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
t.Skip("does not exist")
|
||||
func FuzzSetters(f *testing.F) {
|
||||
f.Fuzz(func(t *testing.T, firstByte byte, value []byte) {
|
||||
var (
|
||||
m1 = &Message{
|
||||
Raw: make([]byte, 0, 2048),
|
||||
}
|
||||
m2 = &Message{
|
||||
Raw: make([]byte, 0, 2048),
|
||||
}
|
||||
m3 = &Message{
|
||||
Raw: make([]byte, 0, 2048),
|
||||
}
|
||||
)
|
||||
|
||||
attrs := attributes{
|
||||
{new(Realm), AttrRealm},
|
||||
{new(XORMappedAddress), AttrXORMappedAddress},
|
||||
{new(Nonce), AttrNonce},
|
||||
{new(Software), AttrSoftware},
|
||||
{new(AlternateServer), AttrAlternateServer},
|
||||
{new(ErrorCodeAttribute), AttrErrorCode},
|
||||
{new(UnknownAttributes), AttrUnknownAttributes},
|
||||
{new(Username), AttrUsername},
|
||||
{new(MappedAddress), AttrMappedAddress},
|
||||
{new(Realm), AttrRealm},
|
||||
}
|
||||
t.Fatal(err)
|
||||
}
|
||||
list, err := f.Readdir(-1)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
for _, d := range list {
|
||||
if strings.Contains(d.Name(), ".") {
|
||||
// Skipping non-raw files.
|
||||
continue
|
||||
attr := attrs.pick(firstByte)
|
||||
|
||||
m1.WriteHeader()
|
||||
m1.Add(attr.t, value)
|
||||
err := attr.g.GetFrom(m1)
|
||||
if errors.Is(err, ErrAttributeNotFound) {
|
||||
t.Fatalf("Unexpected 404: %s", err)
|
||||
}
|
||||
df, err := os.Open(filepath.Join(p, d.Name()))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
m2.WriteHeader()
|
||||
if err = attr.g.AddTo(m2); err != nil {
|
||||
// We allow decoding some text attributes
|
||||
// when their length is too big, but
|
||||
// not encoding.
|
||||
if !IsAttrSizeOverflow(err) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
m3.WriteHeader()
|
||||
v, err := m2.Get(attr.t)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
buf := make([]byte, 5000)
|
||||
n, _ := df.Read(buf)
|
||||
data = append(data, buf[:n])
|
||||
df.Close()
|
||||
}
|
||||
return data
|
||||
}
|
||||
m3.Add(attr.t, v)
|
||||
|
||||
func TestFuzzMessage_Coverage(t *testing.T) {
|
||||
for _, buf := range corpus(t, "stun-msg", "corpus") {
|
||||
FuzzMessage(buf)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFuzzMessage_Crashers(t *testing.T) {
|
||||
for _, buf := range corpus(t, "stun-msg", "crashers") {
|
||||
FuzzMessage(buf)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFuzzType_Coverage(t *testing.T) {
|
||||
for _, buf := range corpus(t, "stun-typ", "corpus") {
|
||||
FuzzType(buf)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFuzzType_Crashers(t *testing.T) {
|
||||
for _, buf := range corpus(t, "stun-typ", "crashers") {
|
||||
FuzzType(buf)
|
||||
}
|
||||
if !m2.Equal(m3) {
|
||||
t.Fatalf("Not equal: %s != %s", m2, m3)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func TestAttrPick(t *testing.T) {
|
||||
attributes := attrs{
|
||||
attrs := attributes{
|
||||
{new(XORMappedAddress), AttrXORMappedAddress},
|
||||
}
|
||||
|
||||
for i := byte(0); i < 255; i++ {
|
||||
attributes.pick(i)
|
||||
attrs.pick(i)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFuzzSetters_Crashers(t *testing.T) {
|
||||
for _, buf := range corpus(t, "stun-setters", "crashers") {
|
||||
FuzzSetters(buf)
|
||||
}
|
||||
type attr interface {
|
||||
Getter
|
||||
Setter
|
||||
}
|
||||
|
||||
func TestFuzzSetters_Coverage(t *testing.T) {
|
||||
for _, buf := range corpus(t, "stun-setters", "corpus") {
|
||||
FuzzSetters(buf)
|
||||
}
|
||||
type attributes []struct {
|
||||
g attr
|
||||
t AttrType
|
||||
}
|
||||
|
||||
func (a attributes) pick(v byte) struct {
|
||||
g attr
|
||||
t AttrType
|
||||
} {
|
||||
idx := int(v) % len(a)
|
||||
return a[idx]
|
||||
}
|
||||
|
@@ -3,9 +3,6 @@
|
||||
set -e
|
||||
touch coverage.txt
|
||||
|
||||
# test fuzz inputs
|
||||
go test -tags gofuzz -run TestFuzz -v .
|
||||
|
||||
# quick-test without -race
|
||||
go test ./...
|
||||
|
||||
|
2
testdata/fuzz/FuzzMessage/0e2295391b7f3eb958c9f4d01172dbfb7a521ae80b57ef7742534c4629439160
vendored
Normal file
2
testdata/fuzz/FuzzMessage/0e2295391b7f3eb958c9f4d01172dbfb7a521ae80b57ef7742534c4629439160
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("11\x00\x17\x1aä\xbdC<64><43><EFBFBD>:O\xbd\xbf\x00\x00\x00\x00\x00\x00\xbf\x00\x00\x00\xbf\x00\x00\x00\x00\xbf\x00\x00\x00\x00\x00\x00")
|
2
testdata/fuzz/FuzzMessage/245b929694bde0bb71c22ec2591f9355b891c85fd8b955034c53b453413a8a1e
vendored
Normal file
2
testdata/fuzz/FuzzMessage/245b929694bde0bb71c22ec2591f9355b891c85fd8b955034c53b453413a8a1e
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("be\x00\x03,\x9b\xfb\x84\xb6\xa0\x00\x80\x00.L+|nfin\x00\x00\x00")
|
2
testdata/fuzz/FuzzMessage/27e983676cba4e3d4c6b268de4dc3c2a4962db616979175fdf675d438afb3c8a
vendored
Normal file
2
testdata/fuzz/FuzzMessage/27e983676cba4e3d4c6b268de4dc3c2a4962db616979175fdf675d438afb3c8a
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("-97759226\xd5m.\x91\xec\xfeI\xd7\x00 \x1aä\xbd\x00\x14\xbf\xbd俽\uffc0\x00\x00\x00\x00\x00\xbf\x00\x00\x00\x9d\x00\xbf\xbd:O\xbd\xbf\x80\x00\x00\x00\x00\x00\xbf\x00\x00\x00\xbf\x00\x00expected quoted string\x00\x00\xbf\x00\x00\xbf\x00\x00\x00\x00\xbf\x00\x00\x00\x00")
|
2
testdata/fuzz/FuzzMessage/36fa5d9fd7d9d66e1cc16e489c8a3b6dd67cbd1227a3d1a23ddb2b0468981b62
vendored
Normal file
2
testdata/fuzz/FuzzMessage/36fa5d9fd7d9d66e1cc16e489c8a3b6dd67cbd1227a3d1a23ddb2b0468981b62
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("14\x00\x04float6\xbd\xbf\xefO\xbd\xbfソ\xef4191")
|
2
testdata/fuzz/FuzzMessage/40d19a226a06d95c9406438b12bf7ecd24f943086796dcf2078cf2fe7ec3fa0f
vendored
Normal file
2
testdata/fuzz/FuzzMessage/40d19a226a06d95c9406438b12bf7ecd24f943086796dcf2078cf2fe7ec3fa0f
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("145519152283668U\x03806")
|
2
testdata/fuzz/FuzzMessage/4bd12c454bb66377b94285a54dde136f0f8308a09769a10a21cbf4d19d390874
vendored
Normal file
2
testdata/fuzz/FuzzMessage/4bd12c454bb66377b94285a54dde136f0f8308a09769a10a21cbf4d19d390874
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("14\x00\x0e\x10\x00\xbf\xbdC<64><43><EFBFBD>:O\xbd\xbf\x00\x00\x00\x00\x00\x00\xbf\x00\x00\x00\x00\x00\x00\x00")
|
2
testdata/fuzz/FuzzMessage/4e2d258e3aa19e4c6de65b0f7fb498a4588b53451e7817fa11d3f3d47c9ee2db
vendored
Normal file
2
testdata/fuzz/FuzzMessage/4e2d258e3aa19e4c6de65b0f7fb498a4588b53451e7817fa11d3f3d47c9ee2db
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("bHnary.L+infinityndi")
|
2
testdata/fuzz/FuzzMessage/562054225de70935c37ac5b9ab326e2cfafd5857d7aad5f5e47e7e5575827ef4
vendored
Normal file
2
testdata/fuzz/FuzzMessage/562054225de70935c37ac5b9ab326e2cfafd5857d7aad5f5e47e7e5575827ef4
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("be\x00\x00\x80\x00.L+|nfinityndi")
|
2
testdata/fuzz/FuzzMessage/66239baa5358757f4655497e3a0d48af4784af901050bfc809480aad65d702dd
vendored
Normal file
2
testdata/fuzz/FuzzMessage/66239baa5358757f4655497e3a0d48af4784af901050bfc809480aad65d702dd
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("00\x00\x000000000000000000")
|
2
testdata/fuzz/FuzzMessage/6eb62aaac87690a5ae3bed8946876b05e4d5d5acd1b2acb558e03fc2e949dada
vendored
Normal file
2
testdata/fuzz/FuzzMessage/6eb62aaac87690a5ae3bed8946876b05e4d5d5acd1b2acb558e03fc2e949dada
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("11\x00!\x1aä\xbd\x00\x14\xbf\xbd쿽<64>:O\xbd\xbf\x00\x00\x00\x00\x00\x00\xbf\x00\x00\x00\xbf\x00\x00\x00\x00\xbf\x00\x00\xbf\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x00\x00\x00\x00\x00\x00")
|
2
testdata/fuzz/FuzzMessage/8038d52e604bf435d73221bdb5c6e28557d915219ab77652d3e4210337b70fba
vendored
Normal file
2
testdata/fuzz/FuzzMessage/8038d52e604bf435d73221bdb5c6e28557d915219ab77652d3e4210337b70fba
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("14\x00\n=<3D>C<EFBFBD><43><EFBFBD>:O\x91\xbf\x00\x00\x01\x00\x00\x00\x00\x01")
|
2
testdata/fuzz/FuzzMessage/8c2645e17b9f6f545c79c33d8ee68ad83030b32367d73d0bbd77c2affdf3a294
vendored
Normal file
2
testdata/fuzz/FuzzMessage/8c2645e17b9f6f545c79c33d8ee68ad83030b32367d73d0bbd77c2affdf3a294
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("11\x00\x14\x10\x00\xbf\xbdC<64><43><EFBFBD>:O\xbd\xbf\x00\x00\x00\x00\x00\x00\xbf\x00\x00\x00\xbf\x00\x00\x00\x00\x00\x00\x00")
|
2
testdata/fuzz/FuzzMessage/93044ca1e00c907b9992a5d0119090c11ed40ddc29a2115ab17423c76ce131e4
vendored
Normal file
2
testdata/fuzz/FuzzMessage/93044ca1e00c907b9992a5d0119090c11ed40ddc29a2115ab17423c76ce131e4
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("14\x00\n=<3D>C<EFBFBD><43><EFBFBD>:O\xbd\xbf\x00\x00\x01\x004191")
|
2
testdata/fuzz/FuzzMessage/95d2ccdd0016d21042194e0ea6d4efff0ca3f66d611bf4fa3230ca505b5b93e5
vendored
Normal file
2
testdata/fuzz/FuzzMessage/95d2ccdd0016d21042194e0ea6d4efff0ca3f66d611bf4fa3230ca505b5b93e5
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("be\x00\x05\xff\xff\x05\x84\xb6\xa0\x00\xf5,\x9b\x00,\x9b\x00.Lf\x00\x00\x00in\x00\x00")
|
2
testdata/fuzz/FuzzMessage/9ae6a162122bc543a5c59d712fdce29a93c21d018e5fd61ebc4c2f71379e834f
vendored
Normal file
2
testdata/fuzz/FuzzMessage/9ae6a162122bc543a5c59d712fdce29a93c21d018e5fd61ebc4c2f71379e834f
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("1\x00\x00\x01\x00<30>C<EFBFBD><43><EFBFBD>:O\xbd\xbf\x00\x00")
|
2
testdata/fuzz/FuzzMessage/9d01ca09c33fbc7fad599dbc7cd5205b97ae8bd6cb9e321bbe992acb6839f399
vendored
Normal file
2
testdata/fuzz/FuzzMessage/9d01ca09c33fbc7fad599dbc7cd5205b97ae8bd6cb9e321bbe992acb6839f399
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("14\x00\n=<3D>C<EFBFBD><43>\xef\x00\x00\x00@\xbd\xbf\x00\x00\x00\x01\x00\x00\x01\x0041")
|
2
testdata/fuzz/FuzzMessage/9f92a54747b065e4b2df1cc3203e82b43853533fb2c2ae9155f31568235f143e
vendored
Normal file
2
testdata/fuzz/FuzzMessage/9f92a54747b065e4b2df1cc3203e82b43853533fb2c2ae9155f31568235f143e
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("14\x00\n=<3D>C<EFBFBD><43><EFBFBD>:O\xbd\xbf\x00\x00\xbf\x00\x00\x00\x00\x00\x00\x00")
|
2
testdata/fuzz/FuzzMessage/bea9013452ffd1e80cd8c4b372b2149c1bf8c77b81c754a9ba35e0720bda0fba
vendored
Normal file
2
testdata/fuzz/FuzzMessage/bea9013452ffd1e80cd8c4b372b2149c1bf8c77b81c754a9ba35e0720bda0fba
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("11\x00 \x1aä\xbd\x00\x14\xbf\xbd俽<64>:O\xbd\xbf\x00\x00\x00\x00\x00\x00\xbf\x00\x00\x00\xbf\x00\x00\x00\x00\xbf\x00\x00\xbf\x00\x00\x00\x00\xbf\x00\x00\x00\x00\x00\x00")
|
2
testdata/fuzz/FuzzMessage/d40a98862ed393eb712e47a91bcef18e6f24cf368bb4bd248c7a7101ef8e178d
vendored
Normal file
2
testdata/fuzz/FuzzMessage/d40a98862ed393eb712e47a91bcef18e6f24cf368bb4bd248c7a7101ef8e178d
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
[]byte("")
|
3
testdata/fuzz/FuzzSetters/337822ea9b278f300ec686794913e39fbb540cb4f216da38283b08b85b4fdfa3
vendored
Normal file
3
testdata/fuzz/FuzzSetters/337822ea9b278f300ec686794913e39fbb540cb4f216da38283b08b85b4fdfa3
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
go test fuzz v1
|
||||
byte('t')
|
||||
[]byte(".gsErP_IH_ol7_mN7_8_r43e_tKnO__a_9TwJV7G_rjz8_c_Mq3y_5H__61__ \t>tt.xcount >txcount0N59lpU_n47gwRq6d0DS__j_wW__9Qu4Oz__uXMR7_g5__O_m__C_4 > 0G0G0N59lpU_n47gwRq6d0DS__j_wW__9Qu4Oz__uXMR7_g5__O_m__C_4 >\t 0G0G")
|
3
testdata/fuzz/FuzzSetters/651f4211e426e9bc0b4ed8fecdcd545d3bec97850fad9cf19c06a0294b1c62c3
vendored
Normal file
3
testdata/fuzz/FuzzSetters/651f4211e426e9bc0b4ed8fecdcd545d3bec97850fad9cf19c06a0294b1c62c3
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
go test fuzz v1
|
||||
byte('t')
|
||||
[]byte(".xcount >t.0N59lpU_n47gwRq6d0DS__j_wW__9Qu4Oz__uXMR7_g5__O_m__C_4 > 0G0G")
|
3
testdata/fuzz/FuzzSetters/8d3066943508ff56500191c92915039470fdda0830ff3e3f5d1dd88c6fb8550a
vendored
Normal file
3
testdata/fuzz/FuzzSetters/8d3066943508ff56500191c92915039470fdda0830ff3e3f5d1dd88c6fb8550a
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
go test fuzz v1
|
||||
byte('G')
|
||||
[]byte("\x00\x01\xbf\xef{")
|
3
testdata/fuzz/FuzzSetters/8e994fd03c509dc7e9b1c6e4c0db222e722d6a89fddbcda99c4164e3c11bf8f5
vendored
Normal file
3
testdata/fuzz/FuzzSetters/8e994fd03c509dc7e9b1c6e4c0db222e722d6a89fddbcda99c4164e3c11bf8f5
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
go test fuzz v1
|
||||
byte('8')
|
||||
[]byte("N_eX6_xy_g_3_.t> \tHcSg__j_Wi3_YV_4oalCf6U90ZzDyR_zh")
|
3
testdata/fuzz/FuzzSetters/9021dd11399c310d0ba5545906ee49ae796564a4c4c4878b3e07a08e33664370
vendored
Normal file
3
testdata/fuzz/FuzzSetters/9021dd11399c310d0ba5545906ee49ae796564a4c4c4878b3e07a08e33664370
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
go test fuzz v1
|
||||
byte('t')
|
||||
[]byte(".xcount > 0G")
|
3
testdata/fuzz/FuzzSetters/a9e2bda709147e3e5c5a288c61714b4270649c5f050e5581369e0994a50597e7
vendored
Normal file
3
testdata/fuzz/FuzzSetters/a9e2bda709147e3e5c5a288c61714b4270649c5f050e5581369e0994a50597e7
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
go test fuzz v1
|
||||
byte('t')
|
||||
[]byte("\xc0\x85\xefZ\xbc\xfb\x01\xe1yp.size >amd64p32 4G")
|
3
testdata/fuzz/FuzzSetters/acea713459e1e476795562801858bee9fd467f25eddb6183e3e4f4ddf8931ba4
vendored
Normal file
3
testdata/fuzz/FuzzSetters/acea713459e1e476795562801858bee9fd467f25eddb6183e3e4f4ddf8931ba4
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
go test fuzz v1
|
||||
byte('8')
|
||||
[]byte("N_eX6_xy_g_3_._7943P6Sn6z2_a_w74tPp9a_nf4A__Z__SUo_iRi1__luyG4_H0y__qsrUYi5Q9WvPpw25nK9_nZK4_9i5t_4Z_5im8e_5aW0> \tHcSg__j_Wi3_YV_4oalCf6U90ZzDyR_zh")
|
3
testdata/fuzz/FuzzSetters/c995214f9f5fd033ca5a11295663eff0e72e2037ba4146b162b91c3594c97b4a
vendored
Normal file
3
testdata/fuzz/FuzzSetters/c995214f9f5fd033ca5a11295663eff0e72e2037ba4146b162b91c3594c97b4a
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
go test fuzz v1
|
||||
byte('t')
|
||||
[]byte(" t.xcount >8_Q.0N59lpU_n47gwRq6d0DS__j_wW__9Qu4Oz__uXMR7_g5__O_m__C_4 >0G0G5R_Jk3K_4C___7__6AksK_1_EnJk__nhuq_t_L_8Bs_hP7D___bz_MaN587__c_ArhrW_F_11KJ_j7u1_5W8\x01._7943P6Sn6z2_a_w74tPp9a_nf4A__Z__SUo_iRi1__luyG4_H0y__qsrUYi5Q9WvPpw25nK9_nZK4_9i5t_4Z_5im8e_5aW0> \t \tHcSg__j_Wi3_YV_4oalCf6U90ZzDyR_zh0G")
|
3
testdata/fuzz/FuzzSetters/dbf9c906416f494d427c7268f4d3c5be67d82281443e7ae68f9acfb5b0069b7d
vendored
Normal file
3
testdata/fuzz/FuzzSetters/dbf9c906416f494d427c7268f4d3c5be67d82281443e7ae68f9acfb5b0069b7d
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
go test fuzz v1
|
||||
byte('~')
|
||||
[]byte("\xf0\xf1\x9d^\x0f\bL.")
|
3
testdata/fuzz/FuzzSetters/eccfde8fecaeceec3a9b7967ec3533321b1cf9865e938546b35e3b9ad8e8d6bb
vendored
Normal file
3
testdata/fuzz/FuzzSetters/eccfde8fecaeceec3a9b7967ec3533321b1cf9865e938546b35e3b9ad8e8d6bb
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
go test fuzz v1
|
||||
byte('G')
|
||||
[]byte("")
|
3
testdata/fuzz/FuzzSetters/fd0cec4a969fa1eb5d8ba153dc60ee11ca5b7ccfcc446ebc90f659eb9977cb0b
vendored
Normal file
3
testdata/fuzz/FuzzSetters/fd0cec4a969fa1eb5d8ba153dc60ee11ca5b7ccfcc446ebc90f659eb9977cb0b
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
go test fuzz v1
|
||||
byte('7')
|
||||
[]byte("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
|
2
testdata/fuzz/FuzzType/347c9496feb1d208c5626b387906542d3dcb6b1cf1657fbada66bd026e28ec86
vendored
Normal file
2
testdata/fuzz/FuzzType/347c9496feb1d208c5626b387906542d3dcb6b1cf1657fbada66bd026e28ec86
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
uint16(0)
|
2
testdata/fuzz/FuzzType/40c5d2bd406be92969bbd57b505e7986120ddf3bda729dbd191b8e3b14317819
vendored
Normal file
2
testdata/fuzz/FuzzType/40c5d2bd406be92969bbd57b505e7986120ddf3bda729dbd191b8e3b14317819
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
uint16(0xbe9c)
|
2
testdata/fuzz/FuzzType/5f8810e2071f50b3b84ae1f315314e1bab6cd5f91365ca5fa595ca36d1f00703
vendored
Normal file
2
testdata/fuzz/FuzzType/5f8810e2071f50b3b84ae1f315314e1bab6cd5f91365ca5fa595ca36d1f00703
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
uint16(0xbdef)
|
2
testdata/fuzz/FuzzType/aa7c06e3e31d31a87ed29f708129c5b803f5179228bdf73dd7ed0d604fc9bd45
vendored
Normal file
2
testdata/fuzz/FuzzType/aa7c06e3e31d31a87ed29f708129c5b803f5179228bdf73dd7ed0d604fc9bd45
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
uint16(0x92fa)
|
2
testdata/fuzz/FuzzType/de25b2beeb5e9f721e1858cb0c8228df9d189cde30ee83b23f677156468a614d
vendored
Normal file
2
testdata/fuzz/FuzzType/de25b2beeb5e9f721e1858cb0c8228df9d189cde30ee83b23f677156468a614d
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
go test fuzz v1
|
||||
uint16(0x5d5b)
|
Reference in New Issue
Block a user