prog: don't serialize output data args

Fixes #188

We now will write just ""/1000 to denote a 1000-byte output buffer.
Also we now don't store 1000-byte buffer in memory just to denote size.
Old format is still parsed.
This commit is contained in:
Dmitry Vyukov 2017-12-13 20:12:13 +01:00
parent eaeccee1d7
commit 8ef0050706
15 changed files with 313 additions and 240 deletions

View File

@ -2,10 +2,10 @@
#if 0
#define GOARCH "32"
#define SYZ_REVISION "ab5b2b746192f26c994482e664534cbf487e3dbe"
#define SYZ_REVISION "79ae2d829892c1b024cfea6076725a13e0ada442"
#define __NR_syz_test 1000000
unsigned syscall_count = 75;
unsigned syscall_count = 76;
call_t syscalls[] = {
{"mmap", 0, (syscall_t)mmap},
{"mutate0", 0, (syscall_t)mutate0},
@ -15,7 +15,8 @@ call_t syscalls[] = {
{"mutate4", 0, (syscall_t)mutate4},
{"mutate5", 0, (syscall_t)mutate5},
{"mutate6", 0, (syscall_t)mutate6},
{"serialize", 0, (syscall_t)serialize},
{"serialize0", 0, (syscall_t)serialize0},
{"serialize1", 0, (syscall_t)serialize1},
{"syz_test", 1000000, (syscall_t)syz_test},
{"syz_test$align0", 1000000, (syscall_t)syz_test},
{"syz_test$align1", 1000000, (syscall_t)syz_test},
@ -88,10 +89,10 @@ call_t syscalls[] = {
#if 0
#define GOARCH "64"
#define SYZ_REVISION "1dd179fe95626e284e24e4e636195924bced24ef"
#define SYZ_REVISION "b1c83c04183eb27b5158df59d58c510efb35257d"
#define __NR_syz_test 1000000
unsigned syscall_count = 75;
unsigned syscall_count = 76;
call_t syscalls[] = {
{"mmap", 0, (syscall_t)mmap},
{"mutate0", 0, (syscall_t)mutate0},
@ -101,7 +102,8 @@ call_t syscalls[] = {
{"mutate4", 0, (syscall_t)mutate4},
{"mutate5", 0, (syscall_t)mutate5},
{"mutate6", 0, (syscall_t)mutate6},
{"serialize", 0, (syscall_t)serialize},
{"serialize0", 0, (syscall_t)serialize0},
{"serialize1", 0, (syscall_t)serialize1},
{"syz_test", 1000000, (syscall_t)syz_test},
{"syz_test$align0", 1000000, (syscall_t)syz_test},
{"syz_test$align1", 1000000, (syscall_t)syz_test},

View File

@ -58,12 +58,12 @@ func (s *state) analyze(c *Call) {
}
case *BufferType:
a := arg.(*DataArg)
if typ.Dir() != DirOut && len(a.Data) != 0 {
if typ.Dir() != DirOut && len(a.Data()) != 0 {
switch typ.Kind {
case BufferString:
s.strings[string(a.Data)] = true
s.strings[string(a.Data())] = true
case BufferFilename:
s.files[string(a.Data)] = true
s.files[string(a.Data())] = true
}
}
}

View File

@ -44,7 +44,7 @@ func clone(arg Arg, newargs map[Arg]Arg) Arg {
case *DataArg:
a1 := new(DataArg)
*a1 = *a
a1.Data = append([]byte{}, a.Data...)
a1.data = append([]byte{}, a.data...)
arg1 = a1
case *GroupArg:
a1 := new(GroupArg)

View File

@ -74,15 +74,19 @@ func serialize(arg Arg, buf *bytes.Buffer, vars map[Arg]int, varSeq *int) {
fmt.Fprintf(buf, "&%v=", serializeAddr(arg))
serialize(a.Res, buf, vars, varSeq)
case *DataArg:
data := a.Data
if !arg.Type().Varlen() {
// Statically typed data will be padded with 0s during
// deserialization, so we can strip them here for readability.
for len(data) >= 2 && data[len(data)-1] == 0 && data[len(data)-2] == 0 {
data = data[:len(data)-1]
if a.Type().Dir() == DirOut {
fmt.Fprintf(buf, "\"\"/%v", a.Size())
} else {
data := a.Data()
if !arg.Type().Varlen() {
// Statically typed data will be padded with 0s during
// deserialization, so we can strip them here for readability.
for len(data) >= 2 && data[len(data)-1] == 0 && data[len(data)-2] == 0 {
data = data[:len(data)-1]
}
}
serializeData(buf, data)
}
serializeData(buf, data)
case *GroupArg:
var delims []byte
switch arg.Type().(type) {
@ -287,13 +291,29 @@ func (target *Target) parseArg(typ Type, p *parser, vars map[string]Arg) (Arg, e
if err != nil {
return nil, err
}
size := ^uint64(0)
if p.Char() == '/' {
p.Parse('/')
sizeStr := p.Ident()
size, err = strconv.ParseUint(sizeStr, 0, 64)
if err != nil {
return nil, fmt.Errorf("failed to parse buffer size: %q", sizeStr)
}
}
if !typ.Varlen() {
if diff := int(typ.Size()) - len(data); diff > 0 {
size = typ.Size()
} else if size == ^uint64(0) {
size = uint64(len(data))
}
if typ.Dir() == DirOut {
arg = MakeOutDataArg(typ, size)
} else {
if diff := int(size) - len(data); diff > 0 {
data = append(data, make([]byte, diff)...)
}
data = data[:typ.Size()]
data = data[:size]
arg = MakeDataArg(typ, data)
}
arg = MakeDataArg(typ, data)
case '{':
t1, ok := typ.(*StructType)
if !ok {

View File

@ -168,8 +168,12 @@ func TestSerializeDeserialize(t *testing.T) {
target := initTargetTest(t, "test", "64")
tests := [][2]string{
{
`serialize(&(0x7f0000408000)={"6861736800000000000000000000", "4849000000"})`,
`serialize(&(0x7f0000408000)={'hash\x00', 'HI\x00'})`,
`serialize0(&(0x7f0000408000)={"6861736800000000000000000000", "4849000000"})`,
`serialize0(&(0x7f0000408000)={'hash\x00', 'HI\x00'})`,
},
{
`serialize1(&(0x7f0000000000)="0000000000000000", 0x8)`,
`serialize1(&(0x7f0000000000)=""/8, 0x8)`,
},
}
for _, test := range tests {

View File

@ -104,7 +104,8 @@ func (p *Prog) SerializeForExec(buffer []byte, pid int) (int, error) {
if _, ok := arg1.(*UnionArg); ok {
return
}
if a1, ok := arg1.(*DataArg); ok && len(a1.Data) == 0 {
if a1, ok := arg1.(*DataArg); ok &&
(a1.Type().Dir() == DirOut || len(a1.Data()) == 0) {
return
}
if !IsPad(arg1.Type()) && arg1.Type().Dir() != DirOut {
@ -270,16 +271,17 @@ func (w *execContext) writeArg(arg Arg, pid int, csumMap map[Arg]CsumInfo) {
w.write(0) // bit field offset
w.write(0) // bit field length
case *DataArg:
data := a.Data()
w.write(ExecArgData)
w.write(uint64(len(a.Data)))
padded := len(a.Data)
if pad := 8 - len(a.Data)%8; pad != 8 {
w.write(uint64(len(data)))
padded := len(data)
if pad := 8 - len(data)%8; pad != 8 {
padded += pad
}
if len(w.buf) < padded {
w.eof = true
} else {
copy(w.buf, a.Data)
copy(w.buf, data)
w.buf = w.buf[padded:]
}
default:

View File

@ -120,16 +120,21 @@ func checkConstArg(arg *ConstArg, compMap CompMap, exec func()) {
func checkDataArg(arg *DataArg, compMap CompMap, exec func()) {
bytes := make([]byte, 8)
for i := 0; i < min(len(arg.Data), maxDataLength); i++ {
data := arg.Data()
size := len(data)
if size > maxDataLength {
size = maxDataLength
}
for i := 0; i < size; i++ {
original := make([]byte, 8)
copy(original, arg.Data[i:])
copy(original, data[i:])
val := binary.LittleEndian.Uint64(original)
for replacer := range shrinkExpand(val, compMap) {
binary.LittleEndian.PutUint64(bytes, replacer)
copy(arg.Data[i:], bytes)
copy(data[i:], bytes)
exec()
}
copy(arg.Data[i:], original)
copy(data[i:], original)
}
}
@ -205,10 +210,3 @@ func init() {
specialIntsSet[v] = true
}
}
func min(a, b int) int {
if a <= b {
return a
}
return b
}

View File

@ -161,10 +161,10 @@ func TestHintsCheckDataArg(t *testing.T) {
res := make(map[string]bool)
// Whatever type here. It's just needed to pass the
// dataArg.Type().Dir() == DirIn check.
typ := ArrayType{TypeCommon{"", "", 0, DirIn, false}, nil, 0, 0, 0}
dataArg := &DataArg{ArgCommon{&typ}, []byte(test.in)}
typ := &ArrayType{TypeCommon{"", "", 0, DirIn, false}, nil, 0, 0, 0}
dataArg := MakeDataArg(typ, []byte(test.in)).(*DataArg)
checkDataArg(dataArg, test.comps, func() {
res[string(dataArg.Data)] = true
res[string(dataArg.Data())] = true
})
if !reflect.DeepEqual(res, test.res) {
s := "\ngot: ["
@ -365,26 +365,30 @@ func TestHintsRandom(t *testing.T) {
func extractValues(c *Call) map[uint64]bool {
vals := make(map[uint64]bool)
foreachArg(c, func(arg, _ Arg, _ *[]Arg) {
if arg.Type().Dir() == DirOut {
return
}
switch a := arg.(type) {
case *ConstArg:
vals[a.Val] = true
case *DataArg:
for i := range a.Data {
vals[uint64(a.Data[i])] = true
if i < len(a.Data)-1 {
v := uint64(a.Data[i]) | uint64(a.Data[i+1])<<8
data := a.Data()
for i := range data {
vals[uint64(data[i])] = true
if i < len(data)-1 {
v := uint64(data[i]) | uint64(data[i+1])<<8
vals[v] = true
}
if i < len(a.Data)-3 {
v := uint64(a.Data[i]) | uint64(a.Data[i+1])<<8 |
uint64(a.Data[i+2])<<16 | uint64(a.Data[i+3])<<24
if i < len(data)-3 {
v := uint64(data[i]) | uint64(data[i+1])<<8 |
uint64(data[i+2])<<16 | uint64(data[i+3])<<24
vals[v] = true
}
if i < len(a.Data)-7 {
v := uint64(a.Data[i]) | uint64(a.Data[i+1])<<8 |
uint64(a.Data[i+2])<<16 | uint64(a.Data[i+3])<<24 |
uint64(a.Data[i+4])<<32 | uint64(a.Data[i+5])<<40 |
uint64(a.Data[i+6])<<48 | uint64(a.Data[i+7])<<56
if i < len(data)-7 {
v := uint64(data[i]) | uint64(data[i+1])<<8 |
uint64(data[i+2])<<16 | uint64(data[i+3])<<24 |
uint64(data[i+4])<<32 | uint64(data[i+5])<<40 |
uint64(data[i+6])<<48 | uint64(data[i+7])<<56
vals[v] = true
}
}
@ -428,7 +432,7 @@ func TestHintsData(t *testing.T) {
var got []string
p.MutateWithHints(0, test.comps, func(newP *Prog) {
got = append(got, hex.EncodeToString(
newP.Calls[0].Args[0].(*PointerArg).Res.(*DataArg).Data))
newP.Calls[0].Args[0].(*PointerArg).Res.(*DataArg).Data()))
})
sort.Strings(test.out)
sort.Strings(got)

View File

@ -101,27 +101,28 @@ func (p *Prog) Mutate(rs rand.Source, ncalls int, ct *ChoiceTable, corpus []*Pro
a := arg.(*DataArg)
switch t.Kind {
case BufferBlobRand, BufferBlobRange:
var data []byte
data = append([]byte{}, a.Data...)
data := append([]byte{}, a.Data()...)
minLen, maxLen := uint64(0), maxBlobLen
if t.Kind == BufferBlobRange {
minLen, maxLen = t.RangeBegin, t.RangeEnd
}
a.Data = mutateData(r, data, minLen, maxLen)
a.data = mutateData(r, data, minLen, maxLen)
case BufferString:
data := append([]byte{}, a.Data()...)
if r.bin() {
minLen, maxLen := uint64(0), maxBlobLen
if t.TypeSize != 0 {
minLen, maxLen = t.TypeSize, t.TypeSize
}
a.Data = mutateData(r, append([]byte{}, a.Data...), minLen, maxLen)
a.data = mutateData(r, data, minLen, maxLen)
} else {
a.Data = r.randString(s, t.Values, t.Dir())
a.data = r.randString(s, t.Values, t.Dir())
}
case BufferFilename:
a.Data = []byte(r.filename(s))
a.data = []byte(r.filename(s))
case BufferText:
a.Data = r.mutateText(t.Text, a.Data)
data := append([]byte{}, a.Data()...)
a.data = r.mutateText(t.Text, data)
default:
panic("unknown buffer kind")
}
@ -430,19 +431,20 @@ func Minimize(p0 *Prog, callIndex0 int, pred0 func(*Prog, int) bool, crash bool)
return false
}
triedPaths[path] = true
if typ.Kind != BufferBlobRand && typ.Kind != BufferBlobRange {
if typ.Kind != BufferBlobRand && typ.Kind != BufferBlobRange ||
typ.Dir() == DirOut {
return false
}
a := arg.(*DataArg)
minLen := int(typ.RangeBegin)
for step := len(a.Data) - minLen; len(a.Data) > minLen && step > 0; {
if len(a.Data)-step >= minLen {
a.Data = a.Data[:len(a.Data)-step]
for step := len(a.Data()) - minLen; len(a.Data()) > minLen && step > 0; {
if len(a.Data())-step >= minLen {
a.data = a.Data()[:len(a.Data())-step]
p.Target.assignSizesCall(call)
if pred(p, callIndex0) {
continue
}
a.Data = a.Data[:len(a.Data)+step]
a.data = a.Data()[:len(a.Data())+step]
p.Target.assignSizesCall(call)
}
step /= 2

View File

@ -86,11 +86,36 @@ func (arg *PointerArg) Size() uint64 {
// Used for BufferType.
type DataArg struct {
ArgCommon
Data []byte
data []byte // for in/inout args
size uint64 // for out Args
}
func MakeDataArg(t Type, data []byte) Arg {
if t.Dir() == DirOut {
panic("non-empty output data arg")
}
return &DataArg{ArgCommon: ArgCommon{typ: t}, data: append([]byte{}, data...)}
}
func MakeOutDataArg(t Type, size uint64) Arg {
if t.Dir() != DirOut {
panic("empty input data arg")
}
return &DataArg{ArgCommon: ArgCommon{typ: t}, size: size}
}
func (arg *DataArg) Size() uint64 {
return uint64(len(arg.Data))
if len(arg.data) != 0 {
return uint64(len(arg.data))
}
return arg.size
}
func (arg *DataArg) Data() []byte {
if arg.Type().Dir() == DirOut {
panic("getting data of output data arg")
}
return arg.data
}
// Used for StructType and ArrayType.
@ -240,10 +265,6 @@ func MakeResultArg(t Type, r Arg, v uint64) Arg {
return arg
}
func MakeDataArg(t Type, data []byte) Arg {
return &DataArg{ArgCommon: ArgCommon{typ: t}, Data: append([]byte{}, data...)}
}
func MakePointerArg(t Type, page uint64, off int, npages uint64, obj Arg) Arg {
return &PointerArg{ArgCommon: ArgCommon{typ: t}, PageIndex: page, PageOffset: off, PagesNum: npages, Res: obj}
}
@ -267,6 +288,13 @@ func defaultArg(t Type) Arg {
case *ResourceType:
return MakeResultArg(t, nil, typ.Desc.Type.Default())
case *BufferType:
if t.Dir() == DirOut {
var sz uint64
if !typ.Varlen() {
sz = typ.Size()
}
return MakeOutDataArg(t, sz)
}
var data []byte
if !typ.Varlen() {
data = make([]byte, typ.Size())

View File

@ -593,32 +593,38 @@ func (r *randGen) generateArg(s *state, typ Type) (arg Arg, calls []*Call) {
if a.Kind == BufferBlobRange {
sz = r.randRange(a.RangeBegin, a.RangeEnd)
}
if a.Dir() == DirOut {
return MakeOutDataArg(a, sz), nil
}
data := make([]byte, sz)
if a.Dir() != DirOut {
for i := range data {
data[i] = byte(r.Intn(256))
}
for i := range data {
data[i] = byte(r.Intn(256))
}
return MakeDataArg(a, data), nil
case BufferString:
data := r.randString(s, a.Values, a.Dir())
return MakeDataArg(a, data), nil
case BufferFilename:
var data []byte
if a.Dir() == DirOut {
switch {
case r.nOutOf(1, 3):
data = make([]byte, r.Intn(100))
case r.nOutOf(1, 2):
data = make([]byte, 108) // UNIX_PATH_MAX
default:
data = make([]byte, 4096) // PATH_MAX
}
} else {
data = []byte(r.filename(s))
return MakeOutDataArg(a, uint64(len(data))), nil
}
return MakeDataArg(a, data), nil
case BufferFilename:
if a.Dir() == DirOut {
sz := 0
switch {
case r.nOutOf(1, 3):
sz = r.Intn(100)
case r.nOutOf(1, 2):
sz = 108 // UNIX_PATH_MAX
default:
sz = 4096 // PATH_MAX
}
return MakeOutDataArg(a, uint64(sz)), nil
}
return MakeDataArg(a, []byte(r.filename(s))), nil
case BufferText:
if a.Dir() == DirOut {
return MakeOutDataArg(a, uint64(r.Intn(100))), nil
}
return MakeDataArg(a, r.generateText(a.Text)), nil
default:
panic("unknown buffer kind")

View File

@ -68,10 +68,9 @@ func (c *Call) validate(ctx *validCtx) error {
return fmt.Errorf("syscall %v: output arg '%v'/'%v' has non default value '%+v'", c.Meta.Name, a.Type().FieldName(), a.Type().Name(), a)
}
case *DataArg:
for _, v := range a.Data {
if v != 0 {
return fmt.Errorf("syscall %v: output arg '%v' has data", c.Meta.Name, a.Type().Name())
}
if len(a.data) != 0 {
return fmt.Errorf("syscall %v: output arg '%v' has data",
c.Meta.Name, a.Type().Name())
}
}
}
@ -123,9 +122,9 @@ func (c *Call) validate(ctx *validCtx) error {
case *DataArg:
switch typ1.Kind {
case BufferString:
if typ1.TypeSize != 0 && uint64(len(a.Data)) != typ1.TypeSize {
if typ1.TypeSize != 0 && a.Size() != typ1.TypeSize {
return fmt.Errorf("syscall %v: string arg '%v' has size %v, which should be %v",
c.Meta.Name, a.Type().Name(), len(a.Data), typ1.TypeSize)
c.Meta.Name, a.Type().Name(), a.Size(), typ1.TypeSize)
}
}
default:
@ -178,10 +177,9 @@ func (c *Call) validate(ctx *validCtx) error {
}
case *DataArg:
typ1 := a.Type()
if !typ1.Varlen() && typ1.Size() != uint64(len(a.Data)) {
if !typ1.Varlen() && typ1.Size() != a.Size() {
return fmt.Errorf("syscall %v: data arg %v has wrong size %v, want %v",
c.Meta.Name, arg.Type().Name(),
len(a.Data), typ1.Size())
c.Meta.Name, arg.Type().Name(), a.Size(), typ1.Size())
}
switch typ1 := a.Type().(type) {
case *ArrayType:

View File

@ -14,7 +14,7 @@ var resources_32 = []*ResourceDesc{
}
var structDescs_32 = []*KeyedStruct{
{Key: StructKey{Name: "serialize_struct"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "serialize_struct", TypeSize: 15}, Fields: []Type{
{Key: StructKey{Name: "serialize0_struct"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "serialize0_struct", TypeSize: 15}, Fields: []Type{
&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "a", TypeSize: 10}, Kind: 2, SubKind: "serialize_strings", Values: []string{"aaa\x00\x00\x00\x00\x00\x00\x00", "bbb\x00\x00\x00\x00\x00\x00\x00"}},
&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "b", TypeSize: 5}, Kind: 2, SubKind: "serialize_strings", Values: []string{"aaa\x00\x00", "bbb\x00\x00"}},
}}},
@ -404,216 +404,220 @@ var syscalls_32 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "data", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "size", TypeSize: 4}}, ByteSize: 1, Buf: "data"},
}},
{ID: 8, Name: "serialize", CallName: "serialize", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "serialize_struct"}}},
{ID: 8, Name: "serialize0", CallName: "serialize0", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "serialize0_struct"}}},
}},
{ID: 9, NR: 1000000, Name: "syz_test", CallName: "syz_test"},
{ID: 10, NR: 1000000, Name: "syz_test$align0", CallName: "syz_test", Args: []Type{
{ID: 9, Name: "serialize1", CallName: "serialize1", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "b", TypeSize: 4}}, Buf: "a"},
}},
{ID: 10, NR: 1000000, Name: "syz_test", CallName: "syz_test"},
{ID: 11, NR: 1000000, Name: "syz_test$align0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_align0"}}},
}},
{ID: 11, NR: 1000000, Name: "syz_test$align1", CallName: "syz_test", Args: []Type{
{ID: 12, NR: 1000000, Name: "syz_test$align1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_align1"}}},
}},
{ID: 12, NR: 1000000, Name: "syz_test$align2", CallName: "syz_test", Args: []Type{
{ID: 13, NR: 1000000, Name: "syz_test$align2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_align2"}}},
}},
{ID: 13, NR: 1000000, Name: "syz_test$align3", CallName: "syz_test", Args: []Type{
{ID: 14, NR: 1000000, Name: "syz_test$align3", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_align3"}}},
}},
{ID: 14, NR: 1000000, Name: "syz_test$align4", CallName: "syz_test", Args: []Type{
{ID: 15, NR: 1000000, Name: "syz_test$align4", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_align4"}}},
}},
{ID: 15, NR: 1000000, Name: "syz_test$align5", CallName: "syz_test", Args: []Type{
{ID: 16, NR: 1000000, Name: "syz_test$align5", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_align5"}}},
}},
{ID: 16, NR: 1000000, Name: "syz_test$align6", CallName: "syz_test", Args: []Type{
{ID: 17, NR: 1000000, Name: "syz_test$align6", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_align6"}}},
}},
{ID: 17, NR: 1000000, Name: "syz_test$array0", CallName: "syz_test", Args: []Type{
{ID: 18, NR: 1000000, Name: "syz_test$array0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_array_struct"}}},
}},
{ID: 18, NR: 1000000, Name: "syz_test$array1", CallName: "syz_test", Args: []Type{
{ID: 19, NR: 1000000, Name: "syz_test$array1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_array_trailing"}}},
}},
{ID: 19, NR: 1000000, Name: "syz_test$array2", CallName: "syz_test", Args: []Type{
{ID: 20, NR: 1000000, Name: "syz_test$array2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_array_blob"}}},
}},
{ID: 20, NR: 1000000, Name: "syz_test$bf0", CallName: "syz_test", Args: []Type{
{ID: 21, NR: 1000000, Name: "syz_test$bf0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_bf_struct0"}}},
}},
{ID: 21, NR: 1000000, Name: "syz_test$bf1", CallName: "syz_test", Args: []Type{
{ID: 22, NR: 1000000, Name: "syz_test$bf1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_bf_struct1"}}},
}},
{ID: 22, NR: 1000000, Name: "syz_test$csum_encode", CallName: "syz_test", Args: []Type{
{ID: 23, NR: 1000000, Name: "syz_test$csum_encode", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_csum_encode"}}},
}},
{ID: 23, NR: 1000000, Name: "syz_test$csum_ipv4", CallName: "syz_test", Args: []Type{
{ID: 24, NR: 1000000, Name: "syz_test$csum_ipv4", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv4_header"}}},
}},
{ID: 24, NR: 1000000, Name: "syz_test$csum_ipv4_tcp", CallName: "syz_test", Args: []Type{
{ID: 25, NR: 1000000, Name: "syz_test$csum_ipv4_tcp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv4_tcp_packet"}}},
}},
{ID: 25, NR: 1000000, Name: "syz_test$csum_ipv4_udp", CallName: "syz_test", Args: []Type{
{ID: 26, NR: 1000000, Name: "syz_test$csum_ipv4_udp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv4_udp_packet"}}},
}},
{ID: 26, NR: 1000000, Name: "syz_test$csum_ipv6_icmp", CallName: "syz_test", Args: []Type{
{ID: 27, NR: 1000000, Name: "syz_test$csum_ipv6_icmp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv6_icmp_packet"}}},
}},
{ID: 27, NR: 1000000, Name: "syz_test$csum_ipv6_tcp", CallName: "syz_test", Args: []Type{
{ID: 28, NR: 1000000, Name: "syz_test$csum_ipv6_tcp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv6_tcp_packet"}}},
}},
{ID: 28, NR: 1000000, Name: "syz_test$csum_ipv6_udp", CallName: "syz_test", Args: []Type{
{ID: 29, NR: 1000000, Name: "syz_test$csum_ipv6_udp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv6_udp_packet"}}},
}},
{ID: 29, NR: 1000000, Name: "syz_test$end0", CallName: "syz_test", Args: []Type{
{ID: 30, NR: 1000000, Name: "syz_test$end0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_end_int_struct"}}},
}},
{ID: 30, NR: 1000000, Name: "syz_test$end1", CallName: "syz_test", Args: []Type{
{ID: 31, NR: 1000000, Name: "syz_test$end1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_end_var_struct"}}},
}},
{ID: 31, NR: 1000000, Name: "syz_test$hint_data", CallName: "syz_test", Args: []Type{
{ID: 32, NR: 1000000, Name: "syz_test$hint_data", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array"}}},
}},
{ID: 32, NR: 1000000, Name: "syz_test$int", CallName: "syz_test", Args: []Type{
{ID: 33, NR: 1000000, Name: "syz_test$int", CallName: "syz_test", Args: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "a0", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "a1", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "a2", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "a3", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "a4", TypeSize: 8}}},
}},
{ID: 33, NR: 1000000, Name: "syz_test$length0", CallName: "syz_test", Args: []Type{
{ID: 34, NR: 1000000, Name: "syz_test$length0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_int_struct"}}},
}},
{ID: 34, NR: 1000000, Name: "syz_test$length1", CallName: "syz_test", Args: []Type{
{ID: 35, NR: 1000000, Name: "syz_test$length1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_const_struct"}}},
}},
{ID: 35, NR: 1000000, Name: "syz_test$length10", CallName: "syz_test", Args: []Type{
{ID: 36, NR: 1000000, Name: "syz_test$length10", CallName: "syz_test", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "a0", TypeSize: 4}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "a2", TypeSize: 4}}, ByteSize: 1, Buf: "a0"},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize2", FldName: "a3", TypeSize: 4}}, ByteSize: 2, Buf: "a0"},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "a4", TypeSize: 4}}, ByteSize: 4, Buf: "a0"},
}},
{ID: 36, NR: 1000000, Name: "syz_test$length11", CallName: "syz_test", Args: []Type{
{ID: 37, NR: 1000000, Name: "syz_test$length11", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_large_struct"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"},
}},
{ID: 37, NR: 1000000, Name: "syz_test$length12", CallName: "syz_test", Args: []Type{
{ID: 38, NR: 1000000, Name: "syz_test$length12", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "syz_length_large_struct"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"},
}},
{ID: 38, NR: 1000000, Name: "syz_test$length13", CallName: "syz_test", Args: []Type{
{ID: 39, NR: 1000000, Name: "syz_test$length13", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_large_struct", Dir: 2}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 4}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 8, ArgDir: 2}}, Buf: "a0"}},
}},
{ID: 39, NR: 1000000, Name: "syz_test$length14", CallName: "syz_test", Args: []Type{
{ID: 40, NR: 1000000, Name: "syz_test$length14", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_large_struct", Dir: 2}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 4, IsOptional: true}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 8, ArgDir: 2}}, Buf: "a0"}},
}},
{ID: 40, NR: 1000000, Name: "syz_test$length15", CallName: "syz_test", Args: []Type{
{ID: 41, NR: 1000000, Name: "syz_test$length15", CallName: "syz_test", Args: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "a0", TypeSize: 2}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"},
}},
{ID: 41, NR: 1000000, Name: "syz_test$length16", CallName: "syz_test", Args: []Type{
{ID: 42, NR: 1000000, Name: "syz_test$length16", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_bytesize_struct"}}},
}},
{ID: 42, NR: 1000000, Name: "syz_test$length17", CallName: "syz_test", Args: []Type{
{ID: 43, NR: 1000000, Name: "syz_test$length17", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_bytesize2_struct"}}},
}},
{ID: 43, NR: 1000000, Name: "syz_test$length18", CallName: "syz_test", Args: []Type{
{ID: 44, NR: 1000000, Name: "syz_test$length18", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_bytesize3_struct"}}},
}},
{ID: 44, NR: 1000000, Name: "syz_test$length19", CallName: "syz_test", Args: []Type{
{ID: 45, NR: 1000000, Name: "syz_test$length19", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_bf_struct"}}},
}},
{ID: 45, NR: 1000000, Name: "syz_test$length2", CallName: "syz_test", Args: []Type{
{ID: 46, NR: 1000000, Name: "syz_test$length2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_flags_struct"}}},
}},
{ID: 46, NR: 1000000, Name: "syz_test$length20", CallName: "syz_test", Args: []Type{
{ID: 47, NR: 1000000, Name: "syz_test$length20", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_parent2_struct"}}},
}},
{ID: 47, NR: 1000000, Name: "syz_test$length3", CallName: "syz_test", Args: []Type{
{ID: 48, NR: 1000000, Name: "syz_test$length3", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_len_struct"}}},
}},
{ID: 48, NR: 1000000, Name: "syz_test$length4", CallName: "syz_test", Args: []Type{
{ID: 49, NR: 1000000, Name: "syz_test$length4", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_len2_struct"}}},
}},
{ID: 49, NR: 1000000, Name: "syz_test$length5", CallName: "syz_test", Args: []Type{
{ID: 50, NR: 1000000, Name: "syz_test$length5", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_parent_struct"}}},
}},
{ID: 50, NR: 1000000, Name: "syz_test$length6", CallName: "syz_test", Args: []Type{
{ID: 51, NR: 1000000, Name: "syz_test$length6", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_array_struct"}}},
}},
{ID: 51, NR: 1000000, Name: "syz_test$length7", CallName: "syz_test", Args: []Type{
{ID: 52, NR: 1000000, Name: "syz_test$length7", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_array2_struct"}}},
}},
{ID: 52, NR: 1000000, Name: "syz_test$length8", CallName: "syz_test", Args: []Type{
{ID: 53, NR: 1000000, Name: "syz_test$length8", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_complex_struct"}}},
}},
{ID: 53, NR: 1000000, Name: "syz_test$length9", CallName: "syz_test", Args: []Type{
{ID: 54, NR: 1000000, Name: "syz_test$length9", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_vma_struct"}}},
}},
{ID: 54, NR: 1000000, Name: "syz_test$missing_resource", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_missing_const_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{ID: 55, NR: 1000000, Name: "syz_test$opt0", CallName: "syz_test", Args: []Type{
{ID: 55, NR: 1000000, Name: "syz_test$missing_resource", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_missing_const_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{ID: 56, NR: 1000000, Name: "syz_test$opt0", CallName: "syz_test", Args: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "a0", TypeSize: 4, IsOptional: true}}},
}},
{ID: 56, NR: 1000000, Name: "syz_test$opt1", CallName: "syz_test", Args: []Type{
{ID: 57, NR: 1000000, Name: "syz_test$opt1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4, IsOptional: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", TypeSize: 4}}}},
}},
{ID: 57, NR: 1000000, Name: "syz_test$opt2", CallName: "syz_test", Args: []Type{
{ID: 58, NR: 1000000, Name: "syz_test$opt2", CallName: "syz_test", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "a0", TypeSize: 4, IsOptional: true}},
}},
{ID: 58, NR: 1000000, Name: "syz_test$recur0", CallName: "syz_test", Args: []Type{
{ID: 59, NR: 1000000, Name: "syz_test$recur0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_recur_0", Dir: 2}}},
}},
{ID: 59, NR: 1000000, Name: "syz_test$recur1", CallName: "syz_test", Args: []Type{
{ID: 60, NR: 1000000, Name: "syz_test$recur1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_recur_1", Dir: 2}}},
}},
{ID: 60, NR: 1000000, Name: "syz_test$recur2", CallName: "syz_test", Args: []Type{
{ID: 61, NR: 1000000, Name: "syz_test$recur2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_recur_2", Dir: 2}}},
}},
{ID: 61, NR: 1000000, Name: "syz_test$regression0", CallName: "syz_test", Args: []Type{
{ID: 62, NR: 1000000, Name: "syz_test$regression0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_regression0_struct", Dir: 2}}},
}},
{ID: 62, NR: 1000000, Name: "syz_test$regression1", CallName: "syz_test", Args: []Type{
{ID: 63, NR: 1000000, Name: "syz_test$regression1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &StructType{Key: StructKey{Name: "syz_regression1_struct"}}}},
}},
{ID: 63, NR: 1000000, Name: "syz_test$regression2", CallName: "syz_test", Args: []Type{
{ID: 64, NR: 1000000, Name: "syz_test$regression2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 16}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: 1, RangeBegin: 4, RangeEnd: 4}},
}},
{ID: 64, NR: 1000000, Name: "syz_test$res0", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{ID: 65, NR: 1000000, Name: "syz_test$res1", CallName: "syz_test", Args: []Type{
{ID: 65, NR: 1000000, Name: "syz_test$res0", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{ID: 66, NR: 1000000, Name: "syz_test$res1", CallName: "syz_test", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "a0", TypeSize: 4}},
}},
{ID: 66, NR: 1000000, Name: "syz_test$struct", CallName: "syz_test", Args: []Type{
{ID: 67, NR: 1000000, Name: "syz_test$struct", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_struct0"}}},
}},
{ID: 67, NR: 1000000, Name: "syz_test$text_x86_16", CallName: "syz_test", Args: []Type{
{ID: 68, NR: 1000000, Name: "syz_test$text_x86_16", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "text"}, Kind: 4, Text: 1}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"},
}},
{ID: 68, NR: 1000000, Name: "syz_test$text_x86_32", CallName: "syz_test", Args: []Type{
{ID: 69, NR: 1000000, Name: "syz_test$text_x86_32", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "text"}, Kind: 4, Text: 2}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"},
}},
{ID: 69, NR: 1000000, Name: "syz_test$text_x86_64", CallName: "syz_test", Args: []Type{
{ID: 70, NR: 1000000, Name: "syz_test$text_x86_64", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "text"}, Kind: 4, Text: 3}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"},
}},
{ID: 70, NR: 1000000, Name: "syz_test$text_x86_real", CallName: "syz_test", Args: []Type{
{ID: 71, NR: 1000000, Name: "syz_test$text_x86_real", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "text"}, Kind: 4}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"},
}},
{ID: 71, NR: 1000000, Name: "syz_test$union0", CallName: "syz_test", Args: []Type{
{ID: 72, NR: 1000000, Name: "syz_test$union0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_union0_struct"}}},
}},
{ID: 72, NR: 1000000, Name: "syz_test$union1", CallName: "syz_test", Args: []Type{
{ID: 73, NR: 1000000, Name: "syz_test$union1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_union1_struct"}}},
}},
{ID: 73, NR: 1000000, Name: "syz_test$union2", CallName: "syz_test", Args: []Type{
{ID: 74, NR: 1000000, Name: "syz_test$union2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_union2_struct"}}},
}},
{ID: 74, NR: 1000000, Name: "syz_test$vma0", CallName: "syz_test", Args: []Type{
{ID: 75, NR: 1000000, Name: "syz_test$vma0", CallName: "syz_test", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "v0", TypeSize: 4}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "l0", TypeSize: 4}}, Buf: "v0"},
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "v1", TypeSize: 4}, RangeBegin: 5, RangeEnd: 5},
@ -630,4 +634,4 @@ var consts_32 = []ConstValue{
{Name: "ONLY_32BITS_CONST", Value: 1},
}
const revision_32 = "ab5b2b746192f26c994482e664534cbf487e3dbe"
const revision_32 = "79ae2d829892c1b024cfea6076725a13e0ada442"

View File

@ -14,7 +14,7 @@ var resources_64 = []*ResourceDesc{
}
var structDescs_64 = []*KeyedStruct{
{Key: StructKey{Name: "serialize_struct"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "serialize_struct", TypeSize: 15}, Fields: []Type{
{Key: StructKey{Name: "serialize0_struct"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "serialize0_struct", TypeSize: 15}, Fields: []Type{
&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "a", TypeSize: 10}, Kind: 2, SubKind: "serialize_strings", Values: []string{"aaa\x00\x00\x00\x00\x00\x00\x00", "bbb\x00\x00\x00\x00\x00\x00\x00"}},
&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "b", TypeSize: 5}, Kind: 2, SubKind: "serialize_strings", Values: []string{"aaa\x00\x00", "bbb\x00\x00"}},
}}},
@ -403,216 +403,220 @@ var syscalls_64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "data", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "size", TypeSize: 8}}, ByteSize: 1, Buf: "data"},
}},
{ID: 8, Name: "serialize", CallName: "serialize", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "serialize_struct"}}},
{ID: 8, Name: "serialize0", CallName: "serialize0", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "serialize0_struct"}}},
}},
{ID: 9, NR: 1000000, Name: "syz_test", CallName: "syz_test"},
{ID: 10, NR: 1000000, Name: "syz_test$align0", CallName: "syz_test", Args: []Type{
{ID: 9, Name: "serialize1", CallName: "serialize1", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "b", TypeSize: 8}}, Buf: "a"},
}},
{ID: 10, NR: 1000000, Name: "syz_test", CallName: "syz_test"},
{ID: 11, NR: 1000000, Name: "syz_test$align0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_align0"}}},
}},
{ID: 11, NR: 1000000, Name: "syz_test$align1", CallName: "syz_test", Args: []Type{
{ID: 12, NR: 1000000, Name: "syz_test$align1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_align1"}}},
}},
{ID: 12, NR: 1000000, Name: "syz_test$align2", CallName: "syz_test", Args: []Type{
{ID: 13, NR: 1000000, Name: "syz_test$align2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_align2"}}},
}},
{ID: 13, NR: 1000000, Name: "syz_test$align3", CallName: "syz_test", Args: []Type{
{ID: 14, NR: 1000000, Name: "syz_test$align3", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_align3"}}},
}},
{ID: 14, NR: 1000000, Name: "syz_test$align4", CallName: "syz_test", Args: []Type{
{ID: 15, NR: 1000000, Name: "syz_test$align4", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_align4"}}},
}},
{ID: 15, NR: 1000000, Name: "syz_test$align5", CallName: "syz_test", Args: []Type{
{ID: 16, NR: 1000000, Name: "syz_test$align5", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_align5"}}},
}},
{ID: 16, NR: 1000000, Name: "syz_test$align6", CallName: "syz_test", Args: []Type{
{ID: 17, NR: 1000000, Name: "syz_test$align6", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_align6"}}},
}},
{ID: 17, NR: 1000000, Name: "syz_test$array0", CallName: "syz_test", Args: []Type{
{ID: 18, NR: 1000000, Name: "syz_test$array0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_array_struct"}}},
}},
{ID: 18, NR: 1000000, Name: "syz_test$array1", CallName: "syz_test", Args: []Type{
{ID: 19, NR: 1000000, Name: "syz_test$array1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_array_trailing"}}},
}},
{ID: 19, NR: 1000000, Name: "syz_test$array2", CallName: "syz_test", Args: []Type{
{ID: 20, NR: 1000000, Name: "syz_test$array2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_array_blob"}}},
}},
{ID: 20, NR: 1000000, Name: "syz_test$bf0", CallName: "syz_test", Args: []Type{
{ID: 21, NR: 1000000, Name: "syz_test$bf0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_bf_struct0"}}},
}},
{ID: 21, NR: 1000000, Name: "syz_test$bf1", CallName: "syz_test", Args: []Type{
{ID: 22, NR: 1000000, Name: "syz_test$bf1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_bf_struct1"}}},
}},
{ID: 22, NR: 1000000, Name: "syz_test$csum_encode", CallName: "syz_test", Args: []Type{
{ID: 23, NR: 1000000, Name: "syz_test$csum_encode", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_csum_encode"}}},
}},
{ID: 23, NR: 1000000, Name: "syz_test$csum_ipv4", CallName: "syz_test", Args: []Type{
{ID: 24, NR: 1000000, Name: "syz_test$csum_ipv4", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv4_header"}}},
}},
{ID: 24, NR: 1000000, Name: "syz_test$csum_ipv4_tcp", CallName: "syz_test", Args: []Type{
{ID: 25, NR: 1000000, Name: "syz_test$csum_ipv4_tcp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv4_tcp_packet"}}},
}},
{ID: 25, NR: 1000000, Name: "syz_test$csum_ipv4_udp", CallName: "syz_test", Args: []Type{
{ID: 26, NR: 1000000, Name: "syz_test$csum_ipv4_udp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv4_udp_packet"}}},
}},
{ID: 26, NR: 1000000, Name: "syz_test$csum_ipv6_icmp", CallName: "syz_test", Args: []Type{
{ID: 27, NR: 1000000, Name: "syz_test$csum_ipv6_icmp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv6_icmp_packet"}}},
}},
{ID: 27, NR: 1000000, Name: "syz_test$csum_ipv6_tcp", CallName: "syz_test", Args: []Type{
{ID: 28, NR: 1000000, Name: "syz_test$csum_ipv6_tcp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv6_tcp_packet"}}},
}},
{ID: 28, NR: 1000000, Name: "syz_test$csum_ipv6_udp", CallName: "syz_test", Args: []Type{
{ID: 29, NR: 1000000, Name: "syz_test$csum_ipv6_udp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv6_udp_packet"}}},
}},
{ID: 29, NR: 1000000, Name: "syz_test$end0", CallName: "syz_test", Args: []Type{
{ID: 30, NR: 1000000, Name: "syz_test$end0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_end_int_struct"}}},
}},
{ID: 30, NR: 1000000, Name: "syz_test$end1", CallName: "syz_test", Args: []Type{
{ID: 31, NR: 1000000, Name: "syz_test$end1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_end_var_struct"}}},
}},
{ID: 31, NR: 1000000, Name: "syz_test$hint_data", CallName: "syz_test", Args: []Type{
{ID: 32, NR: 1000000, Name: "syz_test$hint_data", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array"}}},
}},
{ID: 32, NR: 1000000, Name: "syz_test$int", CallName: "syz_test", Args: []Type{
{ID: 33, NR: 1000000, Name: "syz_test$int", CallName: "syz_test", Args: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "a0", TypeSize: 8}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "a1", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "a2", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "a3", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "a4", TypeSize: 8}}},
}},
{ID: 33, NR: 1000000, Name: "syz_test$length0", CallName: "syz_test", Args: []Type{
{ID: 34, NR: 1000000, Name: "syz_test$length0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_int_struct"}}},
}},
{ID: 34, NR: 1000000, Name: "syz_test$length1", CallName: "syz_test", Args: []Type{
{ID: 35, NR: 1000000, Name: "syz_test$length1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_const_struct"}}},
}},
{ID: 35, NR: 1000000, Name: "syz_test$length10", CallName: "syz_test", Args: []Type{
{ID: 36, NR: 1000000, Name: "syz_test$length10", CallName: "syz_test", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "a0", TypeSize: 8}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "a2", TypeSize: 8}}, ByteSize: 1, Buf: "a0"},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize2", FldName: "a3", TypeSize: 8}}, ByteSize: 2, Buf: "a0"},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "a4", TypeSize: 8}}, ByteSize: 4, Buf: "a0"},
}},
{ID: 36, NR: 1000000, Name: "syz_test$length11", CallName: "syz_test", Args: []Type{
{ID: 37, NR: 1000000, Name: "syz_test$length11", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_large_struct"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"},
}},
{ID: 37, NR: 1000000, Name: "syz_test$length12", CallName: "syz_test", Args: []Type{
{ID: 38, NR: 1000000, Name: "syz_test$length12", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "syz_length_large_struct"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"},
}},
{ID: 38, NR: 1000000, Name: "syz_test$length13", CallName: "syz_test", Args: []Type{
{ID: 39, NR: 1000000, Name: "syz_test$length13", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_large_struct", Dir: 2}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 8, ArgDir: 2}}, Buf: "a0"}},
}},
{ID: 39, NR: 1000000, Name: "syz_test$length14", CallName: "syz_test", Args: []Type{
{ID: 40, NR: 1000000, Name: "syz_test$length14", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_large_struct", Dir: 2}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 8, IsOptional: true}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 8, ArgDir: 2}}, Buf: "a0"}},
}},
{ID: 40, NR: 1000000, Name: "syz_test$length15", CallName: "syz_test", Args: []Type{
{ID: 41, NR: 1000000, Name: "syz_test$length15", CallName: "syz_test", Args: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "a0", TypeSize: 2}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"},
}},
{ID: 41, NR: 1000000, Name: "syz_test$length16", CallName: "syz_test", Args: []Type{
{ID: 42, NR: 1000000, Name: "syz_test$length16", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_bytesize_struct"}}},
}},
{ID: 42, NR: 1000000, Name: "syz_test$length17", CallName: "syz_test", Args: []Type{
{ID: 43, NR: 1000000, Name: "syz_test$length17", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_bytesize2_struct"}}},
}},
{ID: 43, NR: 1000000, Name: "syz_test$length18", CallName: "syz_test", Args: []Type{
{ID: 44, NR: 1000000, Name: "syz_test$length18", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_bytesize3_struct"}}},
}},
{ID: 44, NR: 1000000, Name: "syz_test$length19", CallName: "syz_test", Args: []Type{
{ID: 45, NR: 1000000, Name: "syz_test$length19", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_bf_struct"}}},
}},
{ID: 45, NR: 1000000, Name: "syz_test$length2", CallName: "syz_test", Args: []Type{
{ID: 46, NR: 1000000, Name: "syz_test$length2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_flags_struct"}}},
}},
{ID: 46, NR: 1000000, Name: "syz_test$length20", CallName: "syz_test", Args: []Type{
{ID: 47, NR: 1000000, Name: "syz_test$length20", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_parent2_struct"}}},
}},
{ID: 47, NR: 1000000, Name: "syz_test$length3", CallName: "syz_test", Args: []Type{
{ID: 48, NR: 1000000, Name: "syz_test$length3", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_len_struct"}}},
}},
{ID: 48, NR: 1000000, Name: "syz_test$length4", CallName: "syz_test", Args: []Type{
{ID: 49, NR: 1000000, Name: "syz_test$length4", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_len2_struct"}}},
}},
{ID: 49, NR: 1000000, Name: "syz_test$length5", CallName: "syz_test", Args: []Type{
{ID: 50, NR: 1000000, Name: "syz_test$length5", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_parent_struct"}}},
}},
{ID: 50, NR: 1000000, Name: "syz_test$length6", CallName: "syz_test", Args: []Type{
{ID: 51, NR: 1000000, Name: "syz_test$length6", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_array_struct"}}},
}},
{ID: 51, NR: 1000000, Name: "syz_test$length7", CallName: "syz_test", Args: []Type{
{ID: 52, NR: 1000000, Name: "syz_test$length7", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_array2_struct"}}},
}},
{ID: 52, NR: 1000000, Name: "syz_test$length8", CallName: "syz_test", Args: []Type{
{ID: 53, NR: 1000000, Name: "syz_test$length8", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_complex_struct"}}},
}},
{ID: 53, NR: 1000000, Name: "syz_test$length9", CallName: "syz_test", Args: []Type{
{ID: 54, NR: 1000000, Name: "syz_test$length9", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_vma_struct"}}},
}},
{ID: 54, NR: 1000000, Name: "syz_test$missing_resource", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_missing_const_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{ID: 55, NR: 1000000, Name: "syz_test$opt0", CallName: "syz_test", Args: []Type{
{ID: 55, NR: 1000000, Name: "syz_test$missing_resource", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_missing_const_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{ID: 56, NR: 1000000, Name: "syz_test$opt0", CallName: "syz_test", Args: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "a0", TypeSize: 8, IsOptional: true}}},
}},
{ID: 56, NR: 1000000, Name: "syz_test$opt1", CallName: "syz_test", Args: []Type{
{ID: 57, NR: 1000000, Name: "syz_test$opt1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8, IsOptional: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", TypeSize: 8}}}},
}},
{ID: 57, NR: 1000000, Name: "syz_test$opt2", CallName: "syz_test", Args: []Type{
{ID: 58, NR: 1000000, Name: "syz_test$opt2", CallName: "syz_test", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "a0", TypeSize: 8, IsOptional: true}},
}},
{ID: 58, NR: 1000000, Name: "syz_test$recur0", CallName: "syz_test", Args: []Type{
{ID: 59, NR: 1000000, Name: "syz_test$recur0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_recur_0", Dir: 2}}},
}},
{ID: 59, NR: 1000000, Name: "syz_test$recur1", CallName: "syz_test", Args: []Type{
{ID: 60, NR: 1000000, Name: "syz_test$recur1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_recur_1", Dir: 2}}},
}},
{ID: 60, NR: 1000000, Name: "syz_test$recur2", CallName: "syz_test", Args: []Type{
{ID: 61, NR: 1000000, Name: "syz_test$recur2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_recur_2", Dir: 2}}},
}},
{ID: 61, NR: 1000000, Name: "syz_test$regression0", CallName: "syz_test", Args: []Type{
{ID: 62, NR: 1000000, Name: "syz_test$regression0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_regression0_struct", Dir: 2}}},
}},
{ID: 62, NR: 1000000, Name: "syz_test$regression1", CallName: "syz_test", Args: []Type{
{ID: 63, NR: 1000000, Name: "syz_test$regression1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &StructType{Key: StructKey{Name: "syz_regression1_struct"}}}},
}},
{ID: 63, NR: 1000000, Name: "syz_test$regression2", CallName: "syz_test", Args: []Type{
{ID: 64, NR: 1000000, Name: "syz_test$regression2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 16}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: 1, RangeBegin: 4, RangeEnd: 4}},
}},
{ID: 64, NR: 1000000, Name: "syz_test$res0", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{ID: 65, NR: 1000000, Name: "syz_test$res1", CallName: "syz_test", Args: []Type{
{ID: 65, NR: 1000000, Name: "syz_test$res0", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{ID: 66, NR: 1000000, Name: "syz_test$res1", CallName: "syz_test", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "a0", TypeSize: 4}},
}},
{ID: 66, NR: 1000000, Name: "syz_test$struct", CallName: "syz_test", Args: []Type{
{ID: 67, NR: 1000000, Name: "syz_test$struct", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_struct0"}}},
}},
{ID: 67, NR: 1000000, Name: "syz_test$text_x86_16", CallName: "syz_test", Args: []Type{
{ID: 68, NR: 1000000, Name: "syz_test$text_x86_16", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "text"}, Kind: 4, Text: 1}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"},
}},
{ID: 68, NR: 1000000, Name: "syz_test$text_x86_32", CallName: "syz_test", Args: []Type{
{ID: 69, NR: 1000000, Name: "syz_test$text_x86_32", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "text"}, Kind: 4, Text: 2}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"},
}},
{ID: 69, NR: 1000000, Name: "syz_test$text_x86_64", CallName: "syz_test", Args: []Type{
{ID: 70, NR: 1000000, Name: "syz_test$text_x86_64", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "text"}, Kind: 4, Text: 3}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"},
}},
{ID: 70, NR: 1000000, Name: "syz_test$text_x86_real", CallName: "syz_test", Args: []Type{
{ID: 71, NR: 1000000, Name: "syz_test$text_x86_real", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "text"}, Kind: 4}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"},
}},
{ID: 71, NR: 1000000, Name: "syz_test$union0", CallName: "syz_test", Args: []Type{
{ID: 72, NR: 1000000, Name: "syz_test$union0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_union0_struct"}}},
}},
{ID: 72, NR: 1000000, Name: "syz_test$union1", CallName: "syz_test", Args: []Type{
{ID: 73, NR: 1000000, Name: "syz_test$union1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_union1_struct"}}},
}},
{ID: 73, NR: 1000000, Name: "syz_test$union2", CallName: "syz_test", Args: []Type{
{ID: 74, NR: 1000000, Name: "syz_test$union2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_union2_struct"}}},
}},
{ID: 74, NR: 1000000, Name: "syz_test$vma0", CallName: "syz_test", Args: []Type{
{ID: 75, NR: 1000000, Name: "syz_test$vma0", CallName: "syz_test", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "v0", TypeSize: 8}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "l0", TypeSize: 8}}, Buf: "v0"},
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "v1", TypeSize: 8}, RangeBegin: 5, RangeEnd: 5},
@ -628,4 +632,4 @@ var consts_64 = []ConstValue{
{Name: "IPPROTO_UDP", Value: 17},
}
const revision_64 = "1dd179fe95626e284e24e4e636195924bced24ef"
const revision_64 = "b1c83c04183eb27b5158df59d58c510efb35257d"

View File

@ -558,9 +558,10 @@ open_flags = 0xabababababababab, 0xcdcdcdcdcdcdcdcd
# Serialization tests.
serialize(a ptr[in, serialize_struct])
serialize0(a ptr[in, serialize0_struct])
serialize1(a ptr[out, array[int8]], b len[a])
serialize_struct {
serialize0_struct {
a string[serialize_strings, 10]
b string[serialize_strings, 5]
}