mirror of
https://github.com/jsimonetti/rtnetlink.git
synced 2026-05-04 18:36:18 +02:00
Merge pull request #93 from jsimonetti/mdl-multipath-rewrite
rtnetlink: rewrite route multipath parsing using multipathParser type
This commit is contained in:
commit
8500024878
169
route.go
169
route.go
@ -387,63 +387,44 @@ func (a *RouteAttributes) encodeMultipath() ([]byte, error) {
|
||||
return b, nil
|
||||
}
|
||||
|
||||
// parseMultipath consumes RTA_MULTIPATH data into RouteAttributes.
|
||||
func (a *RouteAttributes) parseMultipath(b []byte) error {
|
||||
// check for truncated message
|
||||
if len(b) <= unix.SizeofRtNexthop {
|
||||
return errInvalidRouteMessageAttr
|
||||
}
|
||||
// We cannot retain b after the function returns, so make a copy of the
|
||||
// bytes up front for the multipathParser.
|
||||
buf := make([]byte, len(b))
|
||||
copy(buf, b)
|
||||
|
||||
// Iterate through the nested array of rtnexthop, unpacking each and appending them to mp
|
||||
for i := 0; i <= len(b); {
|
||||
// check for end of message
|
||||
if len(b)-i < unix.SizeofRtNexthop {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Copy over the struct portion
|
||||
var nh NextHop
|
||||
var nhb [unix.SizeofRtNexthop]byte
|
||||
copy(nhb[:], b[i:i+unix.SizeofRtNexthop])
|
||||
|
||||
copy(
|
||||
(*(*[unix.SizeofRtNexthop]byte)(unsafe.Pointer(&nh.Hop)))[:],
|
||||
(*(*[unix.SizeofRtNexthop]byte)(unsafe.Pointer(&nhb[0])))[:],
|
||||
)
|
||||
|
||||
// check again for a truncated message
|
||||
if int(nh.Hop.Length) > len(b) {
|
||||
return errInvalidRouteMessageAttr
|
||||
}
|
||||
|
||||
// grab a new attributedecoder for the nested attributes
|
||||
start := (i + unix.SizeofRtNexthop)
|
||||
end := (i + int(nh.Hop.Length))
|
||||
|
||||
ad, err := netlink.NewAttributeDecoder(b[start:end])
|
||||
if err != nil {
|
||||
// Iterate until no more bytes remain in the buffer or an error occurs.
|
||||
mpp := &multipathParser{b: buf}
|
||||
for mpp.Next() {
|
||||
// Each iteration reads a fixed length RTNextHop structure immediately
|
||||
// followed by its associated netlink attributes with optional data.
|
||||
nh := NextHop{Hop: mpp.RTNextHop()}
|
||||
if err := nh.decode(mpp.AttributeDecoder()); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// read in the nested attributes
|
||||
if err := nh.decode(ad); err != nil {
|
||||
// Stop iteration early if the data was malformed, or otherwise append
|
||||
// this NextHop to the Multipath field.
|
||||
if err := mpp.Err(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// append this hop to the parent Multipath struct
|
||||
a.Multipath = append(a.Multipath, nh)
|
||||
|
||||
// move forward to the next element in multipath.[]nexthop
|
||||
i += int(nh.Hop.Length)
|
||||
}
|
||||
|
||||
return nil
|
||||
// Check the error when Next returns false.
|
||||
return mpp.Err()
|
||||
}
|
||||
|
||||
// TODO: Implement func (mp *RTMultiPath) encode()
|
||||
|
||||
// rtnexthop payload is at least one nested attribute RTA_GATEWAY
|
||||
// possibly others?
|
||||
func (nh *NextHop) decode(ad *netlink.AttributeDecoder) error {
|
||||
if ad == nil {
|
||||
// Invalid decoder, do nothing.
|
||||
return nil
|
||||
}
|
||||
|
||||
for ad.Next() {
|
||||
switch ad.Type() {
|
||||
case unix.RTA_GATEWAY:
|
||||
@ -458,3 +439,109 @@ func (nh *NextHop) decode(ad *netlink.AttributeDecoder) error {
|
||||
|
||||
return ad.Err()
|
||||
}
|
||||
|
||||
// A multipathParser parses packed RTNextHop and netlink attributes into
|
||||
// multipath attributes for an rtnetlink route.
|
||||
type multipathParser struct {
|
||||
// Any errors which occurred during parsing.
|
||||
err error
|
||||
|
||||
// The underlying buffer and a pointer to the reading position.
|
||||
b []byte
|
||||
i int
|
||||
|
||||
// The length of the next set of netlink attributes.
|
||||
alen int
|
||||
}
|
||||
|
||||
// Next continues iteration until an error occurs or no bytes remain.
|
||||
func (mpp *multipathParser) Next() bool {
|
||||
if mpp.err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
// Are there enough bytes left for another RTNextHop, or 0 for EOF?
|
||||
n := len(mpp.b[mpp.i:])
|
||||
switch {
|
||||
case n == 0:
|
||||
// EOF.
|
||||
return false
|
||||
case n >= unix.SizeofRtNexthop:
|
||||
return true
|
||||
default:
|
||||
mpp.err = errInvalidRouteMessageAttr
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
// Err returns any errors encountered while parsing.
|
||||
func (mpp *multipathParser) Err() error { return mpp.err }
|
||||
|
||||
// RTNextHop parses the next RTNextHop structure from the buffer.
|
||||
func (mpp *multipathParser) RTNextHop() RTNextHop {
|
||||
if mpp.err != nil {
|
||||
return RTNextHop{}
|
||||
}
|
||||
|
||||
if len(mpp.b)-mpp.i < unix.SizeofRtNexthop {
|
||||
// Out of bounds access, not enough data for a valid RTNextHop.
|
||||
mpp.err = errInvalidRouteMessageAttr
|
||||
return RTNextHop{}
|
||||
}
|
||||
|
||||
// Consume an RTNextHop from the buffer by copying its bytes into an output
|
||||
// structure while also verifying that the size of each structure is equal
|
||||
// to avoid any out-of-bounds unsafe memory access.
|
||||
var rtnh RTNextHop
|
||||
next := mpp.b[mpp.i : mpp.i+unix.SizeofRtNexthop]
|
||||
|
||||
if unix.SizeofRtNexthop != len(next) {
|
||||
panic("rtnetlink: invalid RTNextHop structure size, panicking to avoid out-of-bounds unsafe access")
|
||||
}
|
||||
|
||||
copy(
|
||||
(*(*[unix.SizeofRtNexthop]byte)(unsafe.Pointer(&rtnh)))[:],
|
||||
(*(*[unix.SizeofRtNexthop]byte)(unsafe.Pointer(&next[0])))[:],
|
||||
)
|
||||
|
||||
if rtnh.Length < unix.SizeofRtNexthop {
|
||||
// Length value is invalid.
|
||||
mpp.err = errInvalidRouteMessageAttr
|
||||
return RTNextHop{}
|
||||
}
|
||||
|
||||
// Compute the length of the next set of attributes using the Length value
|
||||
// in the RTNextHop, minus the size of that fixed length structure itself.
|
||||
// Then, advance the pointer to be ready to read those attributes.
|
||||
mpp.alen = int(rtnh.Length) - unix.SizeofRtNexthop
|
||||
mpp.i += unix.SizeofRtNexthop
|
||||
|
||||
return rtnh
|
||||
}
|
||||
|
||||
// AttributeDecoder returns a netlink.AttributeDecoder pointed at the next set
|
||||
// of netlink attributes from the buffer.
|
||||
func (mpp *multipathParser) AttributeDecoder() *netlink.AttributeDecoder {
|
||||
if mpp.err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Ensure the attributes length value computed while parsing the rtnexthop
|
||||
// fits within the actual slice.
|
||||
if len(mpp.b[mpp.i:]) < mpp.alen {
|
||||
mpp.err = errInvalidRouteMessageAttr
|
||||
return nil
|
||||
}
|
||||
|
||||
// Consume the next set of netlink attributes from the buffer and advance
|
||||
// the pointer to the next RTNextHop or EOF once that is complete.
|
||||
ad, err := netlink.NewAttributeDecoder(mpp.b[mpp.i : mpp.i+mpp.alen])
|
||||
if err != nil {
|
||||
mpp.err = err
|
||||
return nil
|
||||
}
|
||||
|
||||
mpp.i += mpp.alen
|
||||
|
||||
return ad
|
||||
}
|
||||
|
||||
@ -250,6 +250,45 @@ func TestRouteMessageUnmarshalBinaryErrors(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestRouteMessageFuzz(t *testing.T) {
|
||||
skipBigEndian(t)
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
s string
|
||||
}{
|
||||
// Strings in this test table are copied from go-fuzz crashers.
|
||||
{
|
||||
name: "short rtnexthop",
|
||||
s: "\xef\xbf\xea\x00\a\x00\xd1\xea\xf9A\b\xf9\b\x00\t\x00\xbfA\b\xf9" +
|
||||
"\b\x00\a\x00\xf9A\b\xf9\b\x00\a\x00\xbfA\b\xf9\b\x00\a\x00" +
|
||||
"\xd3\xea\xf9A\b\x00\a\u007f\xff\xff\xffA\b\x00\a\x00\xd3\xea\xf9A" +
|
||||
"\b\x00\a\x00\xbfA\b\xf9\b\x00\a\x00\xd3\xea\xf9A\b\x00\a\x00" +
|
||||
"\xd3\xea\xf9A\b\x00\a\x00\xbfA\b\xf9\b\x00\a\x00\xd3-\xbf\xbd",
|
||||
},
|
||||
{
|
||||
name: "out of bounds attributes length",
|
||||
s: "000000000000\x14\x00\t\x000\xea00" +
|
||||
"000000000000",
|
||||
},
|
||||
{
|
||||
name: "bad rtnexthop length",
|
||||
s: "000000000000!\x00\t\x00\b\x0000" +
|
||||
"0000\b\x00000000\x06\x00000000" +
|
||||
"00000",
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
var m RouteMessage
|
||||
if err := m.UnmarshalBinary([]byte(tt.s)); err == nil {
|
||||
t.Fatal("expected an error, but none occurred")
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func compareErrors(x, y error) bool {
|
||||
// This is lazy but should be sufficient for the typical stringified errors
|
||||
// returned by this package.
|
||||
|
||||
BIN
testdata/corpus/014a7c7c01e10f71154383e4f41fd6bbd06ea347-34
vendored
Normal file
BIN
testdata/corpus/014a7c7c01e10f71154383e4f41fd6bbd06ea347-34
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/030d8e26c665fdf82ee587a5d64afbf38cc23e21-17
vendored
Normal file
BIN
testdata/corpus/030d8e26c665fdf82ee587a5d64afbf38cc23e21-17
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/04345ce1f062003985496fcb7d9349ebc2876b77-20
vendored
Normal file
BIN
testdata/corpus/04345ce1f062003985496fcb7d9349ebc2876b77-20
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/05709dbb99435700b4a0ba954247fdc55cf1bfb0-22
vendored
Normal file
BIN
testdata/corpus/05709dbb99435700b4a0ba954247fdc55cf1bfb0-22
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/05b4962a666b891308498ed7015cb1bf822572c8-14
vendored
Normal file
BIN
testdata/corpus/05b4962a666b891308498ed7015cb1bf822572c8-14
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/0754616abaaa7cb244975ef974b144bd84e8428b-35
vendored
Normal file
BIN
testdata/corpus/0754616abaaa7cb244975ef974b144bd84e8428b-35
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/08570d029aa969ce22bd3a838241e2351d601892-33
vendored
Normal file
BIN
testdata/corpus/08570d029aa969ce22bd3a838241e2351d601892-33
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/0c01b253098c650a2490ae190c5b55a8f7238232-26
vendored
Normal file
BIN
testdata/corpus/0c01b253098c650a2490ae190c5b55a8f7238232-26
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/11aa1a9e82c85b86179cee207d45b4b36fa6ef8d-21
vendored
Normal file
BIN
testdata/corpus/11aa1a9e82c85b86179cee207d45b4b36fa6ef8d-21
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/15a480592db700183f8ebc33f4011b774827f80b-36
vendored
Normal file
BIN
testdata/corpus/15a480592db700183f8ebc33f4011b774827f80b-36
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/15fac013cc756309cebe88fc22f3cdc154a22fc5-27
vendored
Normal file
BIN
testdata/corpus/15fac013cc756309cebe88fc22f3cdc154a22fc5-27
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/17019e9fd0d115638253db26ece34cb54f732ff2-20
vendored
Normal file
BIN
testdata/corpus/17019e9fd0d115638253db26ece34cb54f732ff2-20
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/1a4713a946cb0a7f7dacaf5d9343722ba50450be-27
vendored
Normal file
BIN
testdata/corpus/1a4713a946cb0a7f7dacaf5d9343722ba50450be-27
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/1bd5a01bca123f668507d644ef9b481a6c49cae2-25
vendored
Normal file
BIN
testdata/corpus/1bd5a01bca123f668507d644ef9b481a6c49cae2-25
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/1d37e15d47e6e7d5009db734918adbff7c30e186-23
vendored
Normal file
BIN
testdata/corpus/1d37e15d47e6e7d5009db734918adbff7c30e186-23
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/1fa404e71132c0cbdf3cd2da5e189ce3db3c9e90-25
vendored
Normal file
BIN
testdata/corpus/1fa404e71132c0cbdf3cd2da5e189ce3db3c9e90-25
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/201b73ec26c22684742fa96f5744b71381af1d4e-21
vendored
Normal file
BIN
testdata/corpus/201b73ec26c22684742fa96f5744b71381af1d4e-21
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/210c6e9ffb73100f28a6328e9fe0d3c9e9c07fb9-16
vendored
Normal file
BIN
testdata/corpus/210c6e9ffb73100f28a6328e9fe0d3c9e9c07fb9-16
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/2489747779397d0406c46cdb7b969740b680d9df-36
vendored
Normal file
BIN
testdata/corpus/2489747779397d0406c46cdb7b969740b680d9df-36
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/2856e1381e1f367e6bbf733c8f8d9269b3210069-20
vendored
Normal file
BIN
testdata/corpus/2856e1381e1f367e6bbf733c8f8d9269b3210069-20
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/3050600d4de4e42d8632782e01a37c57434165ac-36
vendored
Normal file
BIN
testdata/corpus/3050600d4de4e42d8632782e01a37c57434165ac-36
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/30a60a8461002431e5d1d0abaccfcad9d4290b2b-26
vendored
Normal file
BIN
testdata/corpus/30a60a8461002431e5d1d0abaccfcad9d4290b2b-26
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/30ba71b9bf40fe67103ef91312cc15de571d89ea-20
vendored
Normal file
BIN
testdata/corpus/30ba71b9bf40fe67103ef91312cc15de571d89ea-20
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/31092668951c4a3a6a967e65565e018083c3aa47-21
vendored
Normal file
BIN
testdata/corpus/31092668951c4a3a6a967e65565e018083c3aa47-21
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/32a700eb5a39b1729d6f6f3e11f96aad28ebdb01-23
vendored
Normal file
BIN
testdata/corpus/32a700eb5a39b1729d6f6f3e11f96aad28ebdb01-23
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/357a5a0bb018f571c68de62304e40c9ece3f877a-18
vendored
Normal file
BIN
testdata/corpus/357a5a0bb018f571c68de62304e40c9ece3f877a-18
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/3a3be1015feb1ba36e73f70ef8031fe5e294f407-17
vendored
Normal file
BIN
testdata/corpus/3a3be1015feb1ba36e73f70ef8031fe5e294f407-17
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/3c1df3e8e1c272c8f626f6df45f149ee4c3cfbe6-19
vendored
Normal file
BIN
testdata/corpus/3c1df3e8e1c272c8f626f6df45f149ee4c3cfbe6-19
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/3d9157292e44fafdb68ebf14d400f04231e4891f-22
vendored
Normal file
BIN
testdata/corpus/3d9157292e44fafdb68ebf14d400f04231e4891f-22
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/411ae1f70001e4d8664ff89adb98f77abed617b1-23
vendored
Normal file
BIN
testdata/corpus/411ae1f70001e4d8664ff89adb98f77abed617b1-23
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/46382df651fa9ad60ec1d8c3c7e78f08a00c4bcf-22
vendored
Normal file
BIN
testdata/corpus/46382df651fa9ad60ec1d8c3c7e78f08a00c4bcf-22
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/479789f8f82236700ed83e3818a0fa7a9aa4da1f-33
vendored
Normal file
BIN
testdata/corpus/479789f8f82236700ed83e3818a0fa7a9aa4da1f-33
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/4de8e37093e9dc242c971728d4dbdfb6062270b7-24
vendored
Normal file
BIN
testdata/corpus/4de8e37093e9dc242c971728d4dbdfb6062270b7-24
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/4f6f36f610edad700eb073e838b6ccf42444429d-33
vendored
Normal file
BIN
testdata/corpus/4f6f36f610edad700eb073e838b6ccf42444429d-33
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/52ac5a7fcc8ac33799e52f98eedc046bb2ca6aa9-17
vendored
Normal file
BIN
testdata/corpus/52ac5a7fcc8ac33799e52f98eedc046bb2ca6aa9-17
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/53ed4c52103be45c6072b573273172d538396901-32
vendored
Normal file
BIN
testdata/corpus/53ed4c52103be45c6072b573273172d538396901-32
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/54251caf46e30b1aed36332fe568ba4d31a51933-17
vendored
Normal file
BIN
testdata/corpus/54251caf46e30b1aed36332fe568ba4d31a51933-17
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/584afd81056650427773224b437e92cfd84271d8-24
vendored
Normal file
BIN
testdata/corpus/584afd81056650427773224b437e92cfd84271d8-24
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/58aa226cab109b7edf92b1524943197db056eef9-26
vendored
Normal file
BIN
testdata/corpus/58aa226cab109b7edf92b1524943197db056eef9-26
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/58df5ef9ffa86c8d79222018c95281491a13fbdf-37
vendored
Normal file
BIN
testdata/corpus/58df5ef9ffa86c8d79222018c95281491a13fbdf-37
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/5fab268527874e5b15e23d162ddbeef2c3f4ec9d-24
vendored
Normal file
BIN
testdata/corpus/5fab268527874e5b15e23d162ddbeef2c3f4ec9d-24
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/63b4db4e7daabf1a5ad71a764f41c8fd75d33b4b-22
vendored
Normal file
BIN
testdata/corpus/63b4db4e7daabf1a5ad71a764f41c8fd75d33b4b-22
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/643dcb85bc20c24940498e1c25225ba879c4c593-24
vendored
Normal file
BIN
testdata/corpus/643dcb85bc20c24940498e1c25225ba879c4c593-24
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/65a63389082a29474c590caa273a5383b0fe8ab4-15
vendored
Normal file
BIN
testdata/corpus/65a63389082a29474c590caa273a5383b0fe8ab4-15
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/66d9e5f9b9bd8b2a8ad79098560bf793b6dfc4d0-25
vendored
Normal file
BIN
testdata/corpus/66d9e5f9b9bd8b2a8ad79098560bf793b6dfc4d0-25
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/6a8112f7be75c689d91b4a47a369bd202854509d-22
vendored
Normal file
BIN
testdata/corpus/6a8112f7be75c689d91b4a47a369bd202854509d-22
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/6cddbdda1d1fa96b4d788502c094d26c82e97f1d-17
vendored
Normal file
BIN
testdata/corpus/6cddbdda1d1fa96b4d788502c094d26c82e97f1d-17
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/6eb610df684d58d57222a1751c3f9adde9a3f4c2-17
vendored
Normal file
BIN
testdata/corpus/6eb610df684d58d57222a1751c3f9adde9a3f4c2-17
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/6ed6b1bb7efe94ca3528a713347d97d70dc2cc25-25
vendored
Normal file
BIN
testdata/corpus/6ed6b1bb7efe94ca3528a713347d97d70dc2cc25-25
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/74d2831aef1e3ee79fafff6e2b3b3156e5a2bbb7-19
vendored
Normal file
BIN
testdata/corpus/74d2831aef1e3ee79fafff6e2b3b3156e5a2bbb7-19
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/75442deef9e8bcf95f55fdea690128951c895132-18
vendored
Normal file
BIN
testdata/corpus/75442deef9e8bcf95f55fdea690128951c895132-18
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/7555d5334041a695fe371ad1e97fb9f2feb64b3a-14
vendored
Normal file
BIN
testdata/corpus/7555d5334041a695fe371ad1e97fb9f2feb64b3a-14
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/7a90663bc9ccd8d24e722de393c955600f7217f5-23
vendored
Normal file
BIN
testdata/corpus/7a90663bc9ccd8d24e722de393c955600f7217f5-23
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/7cae3a5ea1f633931a919bcceb3be6ceba799cb4-27
vendored
Normal file
BIN
testdata/corpus/7cae3a5ea1f633931a919bcceb3be6ceba799cb4-27
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/7cbaf92f8070d2e9a69ef1c5ba315c5325b2e8d2-24
vendored
Normal file
BIN
testdata/corpus/7cbaf92f8070d2e9a69ef1c5ba315c5325b2e8d2-24
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/7da2a8a3e0d1fd8ce8e796f7db4113d62acf66fd-21
vendored
Normal file
BIN
testdata/corpus/7da2a8a3e0d1fd8ce8e796f7db4113d62acf66fd-21
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/7efc9df6469f70ed5aecefb9e04e73aac5bb1767-26
vendored
Normal file
BIN
testdata/corpus/7efc9df6469f70ed5aecefb9e04e73aac5bb1767-26
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/7f136a0d966f751ca86b2c47bb30d25c64f5cb32-19
vendored
Normal file
BIN
testdata/corpus/7f136a0d966f751ca86b2c47bb30d25c64f5cb32-19
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/8206490d5711b353c044f125cb1009a556253301-23
vendored
Normal file
BIN
testdata/corpus/8206490d5711b353c044f125cb1009a556253301-23
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/83755275f0798cbf7b3080c0e403bdf04380f860-36
vendored
Normal file
BIN
testdata/corpus/83755275f0798cbf7b3080c0e403bdf04380f860-36
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/845567dee1114d3e5901ac7d5a22e99999f71707-25
vendored
Normal file
BIN
testdata/corpus/845567dee1114d3e5901ac7d5a22e99999f71707-25
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/8506c7210f748e973b1bb189fc431c57558b9cf6-24
vendored
Normal file
BIN
testdata/corpus/8506c7210f748e973b1bb189fc431c57558b9cf6-24
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/86ca933bc9ac48c84b7a87af02a21c67e9934ba1-25
vendored
Normal file
BIN
testdata/corpus/86ca933bc9ac48c84b7a87af02a21c67e9934ba1-25
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/890a9ffbbe40d410ccc35f0162f5fc57baa785d4-18
vendored
Normal file
BIN
testdata/corpus/890a9ffbbe40d410ccc35f0162f5fc57baa785d4-18
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/8b3731c9c9a781514635d463d616e7ceb93e0eee-19
vendored
Normal file
BIN
testdata/corpus/8b3731c9c9a781514635d463d616e7ceb93e0eee-19
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/8fb71066da9524cb833a518a6b0fbd89bbe65498-22
vendored
Normal file
BIN
testdata/corpus/8fb71066da9524cb833a518a6b0fbd89bbe65498-22
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/90a43a54602eeada2e09860aa6c713720e7aaf3b-21
vendored
Normal file
BIN
testdata/corpus/90a43a54602eeada2e09860aa6c713720e7aaf3b-21
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/90aebe4a4ed1bb7e85b7561aa003989bfbf47352-18
vendored
Normal file
BIN
testdata/corpus/90aebe4a4ed1bb7e85b7561aa003989bfbf47352-18
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/919a037dcee180169ebdc5850ae57ddf3f3fe754-23
vendored
Normal file
BIN
testdata/corpus/919a037dcee180169ebdc5850ae57ddf3f3fe754-23
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/95de36098eaad2d0a6b4c4d0c0835f952ea9f36f-23
vendored
Normal file
BIN
testdata/corpus/95de36098eaad2d0a6b4c4d0c0835f952ea9f36f-23
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/98c4808092bb18ef5449ff2c40006ccb64fc959c-34
vendored
Normal file
BIN
testdata/corpus/98c4808092bb18ef5449ff2c40006ccb64fc959c-34
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/9d6dfde65c3b107ef91ea28c3d1379be4171cb98-24
vendored
Normal file
BIN
testdata/corpus/9d6dfde65c3b107ef91ea28c3d1379be4171cb98-24
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/9e236e6cc2d27502f57842a485148f45181b113b-21
vendored
Normal file
BIN
testdata/corpus/9e236e6cc2d27502f57842a485148f45181b113b-21
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/a0ca94abee0752fd6f88487042b81fa7da371582-22
vendored
Normal file
BIN
testdata/corpus/a0ca94abee0752fd6f88487042b81fa7da371582-22
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/b0d1e7a6bb7f7f5d5bebfaaf3b125396fee48d38-16
vendored
Normal file
BIN
testdata/corpus/b0d1e7a6bb7f7f5d5bebfaaf3b125396fee48d38-16
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/b18d6acd640c548504efe30900e82438e51c95a2-26
vendored
Normal file
BIN
testdata/corpus/b18d6acd640c548504efe30900e82438e51c95a2-26
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/b2bb86dfd86c786ba0b466a8dcceb0bbc7619070-25
vendored
Normal file
BIN
testdata/corpus/b2bb86dfd86c786ba0b466a8dcceb0bbc7619070-25
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/b7cc0b472079179363cfda90c2c10f00b8361a10-20
vendored
Normal file
BIN
testdata/corpus/b7cc0b472079179363cfda90c2c10f00b8361a10-20
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/b7efe110e93c0add9b8109a6241220d6805a436b-25
vendored
Normal file
BIN
testdata/corpus/b7efe110e93c0add9b8109a6241220d6805a436b-25
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/b86cc4caf8ad666455361e7814a85323e328cac1-35
vendored
Normal file
BIN
testdata/corpus/b86cc4caf8ad666455361e7814a85323e328cac1-35
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/baa304928fcd442bd9693630ae2e7af61f03d6fa-25
vendored
Normal file
BIN
testdata/corpus/baa304928fcd442bd9693630ae2e7af61f03d6fa-25
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/bce886181df7acf31e3aa7402f92dbe5e5d202d8-18
vendored
Normal file
BIN
testdata/corpus/bce886181df7acf31e3aa7402f92dbe5e5d202d8-18
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/c0acc5b12ca6eb83d74f1f7fdfb198b055d128af-23
vendored
Normal file
BIN
testdata/corpus/c0acc5b12ca6eb83d74f1f7fdfb198b055d128af-23
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/c1098f7d9bd1f295c75ec8300a1dbb3674e8aff0-24
vendored
Normal file
BIN
testdata/corpus/c1098f7d9bd1f295c75ec8300a1dbb3674e8aff0-24
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/c4c6bb98d9eead8dd3eafbf37546602ac5447a15-17
vendored
Normal file
BIN
testdata/corpus/c4c6bb98d9eead8dd3eafbf37546602ac5447a15-17
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/c62cba957946cff6aab7c5cc8036c3b032a0de95-19
vendored
Normal file
BIN
testdata/corpus/c62cba957946cff6aab7c5cc8036c3b032a0de95-19
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/c7f77028e9659b2eb1b5558aed165fd85bb0188a-36
vendored
Normal file
BIN
testdata/corpus/c7f77028e9659b2eb1b5558aed165fd85bb0188a-36
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/c95678e3bef7f997072915374b7763504ebf0e61-14
vendored
Normal file
BIN
testdata/corpus/c95678e3bef7f997072915374b7763504ebf0e61-14
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/c957388008c74b96cbe01b137b6e8b73e0e87426-33
vendored
Normal file
BIN
testdata/corpus/c957388008c74b96cbe01b137b6e8b73e0e87426-33
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/ccc67b1dc669216851a5ef91e2c90b069e337570-18
vendored
Normal file
BIN
testdata/corpus/ccc67b1dc669216851a5ef91e2c90b069e337570-18
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/ccf45b027757b2ddae4060d230add4c56cd779e6-25
vendored
Normal file
BIN
testdata/corpus/ccf45b027757b2ddae4060d230add4c56cd779e6-25
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/ce0d9f75ac3d9806bc4e06d791031204537a6240-23
vendored
Normal file
BIN
testdata/corpus/ce0d9f75ac3d9806bc4e06d791031204537a6240-23
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/ce77266448941b5aec3b3f9d653fc3564110e46c-22
vendored
Normal file
BIN
testdata/corpus/ce77266448941b5aec3b3f9d653fc3564110e46c-22
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/d2e7b1398f0461afeded94c2b96d7b16c315c72b-20
vendored
Normal file
BIN
testdata/corpus/d2e7b1398f0461afeded94c2b96d7b16c315c72b-20
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/d32ac45384c0b8b1a623269c4cd18ec2e3ae642f-26
vendored
Normal file
BIN
testdata/corpus/d32ac45384c0b8b1a623269c4cd18ec2e3ae642f-26
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/d6e5f77166fe87bbede4cd6a831072efb5f37861-23
vendored
Normal file
BIN
testdata/corpus/d6e5f77166fe87bbede4cd6a831072efb5f37861-23
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/d76d8d4081100decc27e4b75dcec95af63645e93-16
vendored
Normal file
BIN
testdata/corpus/d76d8d4081100decc27e4b75dcec95af63645e93-16
vendored
Normal file
Binary file not shown.
BIN
testdata/corpus/da7ec609aebd427f87081b8171054defcc2a7544-32
vendored
Normal file
BIN
testdata/corpus/da7ec609aebd427f87081b8171054defcc2a7544-32
vendored
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user