mirror of
https://github.com/go-i2p/go-i2p.git
synced 2025-07-05 06:05:16 -04:00
move fuzz files, fix crasher
This commit is contained in:
8
Makefile
8
Makefile
@ -1,8 +0,0 @@
|
||||
fuzz:
|
||||
go-fuzz-build -o lib/common/fuzz/keys_and_cert/exportable-fuzz.zip github.com/hkparker/go-i2p/lib/common/fuzz/keys_and_cert
|
||||
go-fuzz-build -o lib/common/fuzz/certificate/exportable-fuzz.zip github.com/hkparker/go-i2p/lib/common/fuzz/certificate
|
||||
go-fuzz-build -o lib/common/fuzz/destination/exportable-fuzz.zip github.com/hkparker/go-i2p/lib/common/fuzz/destination
|
||||
go-fuzz-build -o lib/common/fuzz/router_address/exportable-fuzz.zip github.com/hkparker/go-i2p/lib/common/fuzz/router_address
|
||||
go-fuzz-build -o lib/common/fuzz/router_identity/exportable-fuzz.zip github.com/hkparker/go-i2p/lib/common/fuzz/router_identity
|
||||
go-fuzz-build -o lib/common/fuzz/string/exportable-fuzz.zip github.com/hkparker/go-i2p/lib/common/fuzz/string
|
||||
forego start
|
6
Procfile
6
Procfile
@ -1,6 +0,0 @@
|
||||
keys_and_cert: go-fuzz -bin=lib/common/fuzz/keys_and_cert/exportable-fuzz.zip -workdir=lib/common/fuzz/keys_and_cert -procs=1
|
||||
certificate: go-fuzz -bin=lib/common/fuzz/certificate/exportable-fuzz.zip -workdir=lib/common/fuzz/certificate -procs=1
|
||||
destination: go-fuzz -bin=lib/common/fuzz/destination/exportable-fuzz.zip -workdir=lib/common/fuzz/destination -procs=1
|
||||
router_address: go-fuzz -bin=lib/common/fuzz/router_address/exportable-fuzz.zip -workdir=lib/common/fuzz/router_address -procs=1
|
||||
router_identity: go-fuzz -bin=lib/common/fuzz/router_identity/exportable-fuzz.zip -workdir=lib/common/fuzz/router_identity -procs=1
|
||||
string: go-fuzz -bin=lib/common/fuzz/string/exportable-fuzz.zip -workdir=lib/common/fuzz/string -procs=1
|
8
lib/common/fuzz/Makefile
Normal file
8
lib/common/fuzz/Makefile
Normal file
@ -0,0 +1,8 @@
|
||||
fuzz:
|
||||
go-fuzz-build -o keys_and_cert/exportable-fuzz.zip github.com/hkparker/go-i2p/lib/common/fuzz/keys_and_cert
|
||||
go-fuzz-build -o certificate/exportable-fuzz.zip github.com/hkparker/go-i2p/lib/common/fuzz/certificate
|
||||
go-fuzz-build -o destination/exportable-fuzz.zip github.com/hkparker/go-i2p/lib/common/fuzz/destination
|
||||
go-fuzz-build -o router_address/exportable-fuzz.zip github.com/hkparker/go-i2p/lib/common/fuzz/router_address
|
||||
go-fuzz-build -o router_identity/exportable-fuzz.zip github.com/hkparker/go-i2p/lib/common/fuzz/router_identity
|
||||
go-fuzz-build -o string/exportable-fuzz.zip github.com/hkparker/go-i2p/lib/common/fuzz/string
|
||||
forego start
|
6
lib/common/fuzz/Procfile
Normal file
6
lib/common/fuzz/Procfile
Normal file
@ -0,0 +1,6 @@
|
||||
keys_and_cert: go-fuzz -bin=keys_and_cert/exportable-fuzz.zip -workdir=lib/common/fuzz/keys_and_cert -procs=2
|
||||
certificate: go-fuzz -bin=certificate/exportable-fuzz.zip -workdir=lib/common/fuzz/certificate -procs=2
|
||||
destination: go-fuzz -bin=destination/exportable-fuzz.zip -workdir=lib/common/fuzz/destination -procs=2
|
||||
router_address: go-fuzz -bin=router_address/exportable-fuzz.zip -workdir=lib/common/fuzz/router_address -procs=2
|
||||
router_identity: go-fuzz -bin=router_identity/exportable-fuzz.zip -workdir=lib/common/fuzz/router_identity -procs=2
|
||||
string: go-fuzz -bin=string/exportable-fuzz.zip -workdir=lib/common/fuzz/string -procs=2
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
||||
in literal
|
@ -0,0 +1 @@
|
||||
i
|
@ -0,0 +1 @@
|
||||
A<EFBFBD><EFBFBD><EFBFBD>q
|
@ -0,0 +1 @@
|
||||
Bnzero lpngth explicit tag was not an Psn-1060808735Flag
|
Binary file not shown.
@ -0,0 +1 @@
|
||||
%
|
@ -0,0 +1 @@
|
||||
<EFBFBD>3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f%
|
@ -0,0 +1 @@
|
||||
in
|
@ -0,0 +1 @@
|
||||
њ%
|
@ -0,0 +1 @@
|
||||
Bnzero lpngth explicit tag wa6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151s not an Psn-1060808735Flag
|
@ -0,0 +1 @@
|
||||
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_
|
@ -0,0 +1 @@
|
||||
PrintableS
|
@ -0,0 +1 @@
|
||||
<EFBFBD>indefinite length
|
@ -0,0 +1 @@
|
||||
C
|
@ -0,0 +1 @@
|
||||
0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
||||
<EFBFBD>ۺ?~%?M<>
|
@ -0,0 +1,19 @@
|
||||
time="2017-04-16T20:54:53-07:00" level=warning msg="string format warning" at="(String) Length" expected_bytes_length=1 reason="data longer than specified" string_bytes_length=3 string_length_field=0
|
||||
panic: runtime error: slice bounds out of range
|
||||
|
||||
goroutine 1 [running]:
|
||||
panic(0x561068e6e880, 0xc42000c1f0)
|
||||
/tmp/go-fuzz-build725797872/goroot/src/runtime/panic.go:500 +0x1a1
|
||||
github.com/hkparker/go-i2p/lib/common.ReadRouterAddress(0x7f11abe00000, 0xc, 0x200000, 0x10, 0x550, 0x56, 0xc420055e88, 0x561068dcccd3, 0x58f43c8d, 0xca6e39e, ...)
|
||||
/tmp/go-fuzz-build725797872/gopath/src/github.com/hkparker/go-i2p/lib/common/router_address.go:153 +0x450
|
||||
github.com/hkparker/go-i2p/lib/common/fuzz/router_address.Fuzz(0x7f11abe00000, 0xc, 0x200000, 0x0)
|
||||
/tmp/go-fuzz-build725797872/gopath/src/github.com/hkparker/go-i2p/lib/common/fuzz/router_address/fuzz.go:6 +0x4c
|
||||
go-fuzz-dep.Main(0x561068e969e8)
|
||||
/tmp/go-fuzz-build725797872/goroot/src/go-fuzz-dep/main.go:49 +0xe8
|
||||
main.main()
|
||||
/tmp/go-fuzz-build725797872/gopath/src/github.com/hkparker/go-i2p/lib/common/fuzz/router_address/go.fuzz.main/main.go:10 +0x2d
|
||||
|
||||
goroutine 17 [syscall, locked to thread]:
|
||||
runtime.goexit()
|
||||
/tmp/go-fuzz-build725797872/goroot/src/runtime/asm_amd64.s:2086 +0x1
|
||||
exit status 2
|
@ -0,0 +1,6 @@
|
||||
panic: runtime error: slice bounds out of range
|
||||
panic
|
||||
github.com/hkparker/go-i2p/lib/common.ReadRouterAddress
|
||||
github.com/hkparker/go-i2p/lib/common/fuzz/router_address.Fuzz
|
||||
go-fuzz-dep.Main
|
||||
main.main
|
@ -0,0 +1 @@
|
||||
expected c
|
@ -0,0 +1 @@
|
||||
I
|
@ -0,0 +1 @@
|
||||
nD5
|
@ -0,0 +1 @@
|
||||
D?
|
Binary file not shown.
Binary file not shown.
@ -1,19 +0,0 @@
|
||||
time="2017-04-07T21:24:51-07:00" level=warning msg="string format warning" at="(String) Length" expected_bytes_length=1 reason="data longer than specified" string_bytes_length=3 string_length_field=0
|
||||
panic: runtime error: slice bounds out of range
|
||||
|
||||
goroutine 1 [running]:
|
||||
panic(0x55732ff677e0, 0xc42000c1f0)
|
||||
/tmp/go-fuzz-build303011531/goroot/src/runtime/panic.go:500 +0x1a1
|
||||
github.com/hkparker/go-i2p/lib/common.ReadRouterAddress(0x7ff24dbe0000, 0xc, 0x200000, 0x10, 0x350, 0x36, 0xc420053e88, 0x55732fec5cd3, 0x58e86613, 0x3747c069, ...)
|
||||
/tmp/go-fuzz-build303011531/gopath/src/github.com/hkparker/go-i2p/lib/common/router_address.go:152 +0x450
|
||||
github.com/hkparker/go-i2p/lib/common/fuzz/router_address.Fuzz(0x7ff24dbe0000, 0xc, 0x200000, 0x0)
|
||||
/tmp/go-fuzz-build303011531/gopath/src/github.com/hkparker/go-i2p/lib/common/fuzz/router_address/fuzz.go:6 +0x4c
|
||||
go-fuzz-dep.Main(0x55732ff8f948)
|
||||
/tmp/go-fuzz-build303011531/goroot/src/go-fuzz-dep/main.go:49 +0xe8
|
||||
main.main()
|
||||
/tmp/go-fuzz-build303011531/gopath/src/github.com/hkparker/go-i2p/lib/common/fuzz/router_address/go.fuzz.main/main.go:10 +0x2d
|
||||
|
||||
goroutine 17 [syscall, locked to thread]:
|
||||
runtime.goexit()
|
||||
/tmp/go-fuzz-build303011531/goroot/src/runtime/asm_amd64.s:2086 +0x1
|
||||
exit status 2
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
||||
<EFBFBD>c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3
|
@ -0,0 +1 @@
|
||||
<EFBFBD>
|
@ -146,9 +146,16 @@ func ReadRouterAddress(data []byte) (router_address RouterAddress, remainder []b
|
||||
mapping := make([]byte, 0)
|
||||
if len(remainder) >= 2 {
|
||||
map_size = Integer(remainder[:2])
|
||||
if len(remainder) < map_size+2 {
|
||||
err = errors.New("not enough data for map inside router address")
|
||||
router_address = RouterAddress([]byte{})
|
||||
remainder = []byte{}
|
||||
return
|
||||
}
|
||||
mapping = remainder[:map_size+2]
|
||||
router_address = append(router_address, mapping...)
|
||||
}
|
||||
|
||||
remainder = data[ROUTER_ADDRESS_MIN_SIZE+len(str)+len(mapping):]
|
||||
return
|
||||
}
|
||||
|
@ -82,3 +82,16 @@ func TestReadRouterAddressReturnsCorrectRemainderWithoutError(t *testing.T) {
|
||||
assert.Nil(err, "checkValid() on address from ReadRouterAddress() reported error with valid data")
|
||||
assert.Equal(exit, false, "checkValid() on address from ReadRouterAddress() indicated to stop parsing valid data")
|
||||
}
|
||||
|
||||
func TestCorrectsFuzzCrasher1(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
assert.Equal(nil, r)
|
||||
}
|
||||
}()
|
||||
|
||||
router_address_bytes := []byte{0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30}
|
||||
ReadRouterAddress(router_address_bytes)
|
||||
}
|
||||
|
Reference in New Issue
Block a user