aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-12-13 19:18:07 +0100
committerDmitry Vyukov <dvyukov@google.com>2017-12-17 11:39:14 +0100
commit41799debdcc19d65fb6e0499cbbb74a489a822ea (patch)
tree8b7107794ac883476fb0f79717e405cb58669c3e
parent286edfb78e2e77c644b32d161e8e1b188406a5c5 (diff)
prog: introduce more readable format for data args
Fixes #460 File names, crypto algorithm names, etc in programs are completely unreadable: bind$alg(r0, &(0x7f0000408000)={0x26, "6861736800000000000000000000", 0x0, 0x0, "6d6435000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000 00000000000"}, 0x58) Introduce another format for printable strings. New args are denoted by '' ("" for old args). New format is enabled for printable chars, \x00 and \t, \r, \n. Example: `serialize(&(0x7f0000408000)={"6861736800000000000000000000", "4849000000"})`, vs: `serialize(&(0x7f0000408000)={'hash\x00', 'HI\x00'})`,
-rw-r--r--executor/syscalls_test.h10
-rw-r--r--prog/encoding.go155
-rw-r--r--prog/encoding_test.go47
-rw-r--r--sys/test/32.go141
-rw-r--r--sys/test/64.go141
-rw-r--r--sys/test/test.txt11
6 files changed, 353 insertions, 152 deletions
diff --git a/executor/syscalls_test.h b/executor/syscalls_test.h
index b5022fb1f..8b1e9a814 100644
--- a/executor/syscalls_test.h
+++ b/executor/syscalls_test.h
@@ -2,10 +2,10 @@
#if 0
#define GOARCH "32"
-#define SYZ_REVISION "d250d71b6658517f5cde664a9f26c969ddb5c4d1"
+#define SYZ_REVISION "ab5b2b746192f26c994482e664534cbf487e3dbe"
#define __NR_syz_test 1000000
-unsigned syscall_count = 74;
+unsigned syscall_count = 75;
call_t syscalls[] = {
{"mmap", 0, (syscall_t)mmap},
{"mutate0", 0, (syscall_t)mutate0},
@@ -15,6 +15,7 @@ call_t syscalls[] = {
{"mutate4", 0, (syscall_t)mutate4},
{"mutate5", 0, (syscall_t)mutate5},
{"mutate6", 0, (syscall_t)mutate6},
+ {"serialize", 0, (syscall_t)serialize},
{"syz_test", 1000000, (syscall_t)syz_test},
{"syz_test$align0", 1000000, (syscall_t)syz_test},
{"syz_test$align1", 1000000, (syscall_t)syz_test},
@@ -87,10 +88,10 @@ call_t syscalls[] = {
#if 0
#define GOARCH "64"
-#define SYZ_REVISION "42c3155912d115b719bd9a905c83c2419b5935f2"
+#define SYZ_REVISION "1dd179fe95626e284e24e4e636195924bced24ef"
#define __NR_syz_test 1000000
-unsigned syscall_count = 74;
+unsigned syscall_count = 75;
call_t syscalls[] = {
{"mmap", 0, (syscall_t)mmap},
{"mutate0", 0, (syscall_t)mutate0},
@@ -100,6 +101,7 @@ call_t syscalls[] = {
{"mutate4", 0, (syscall_t)mutate4},
{"mutate5", 0, (syscall_t)mutate5},
{"mutate6", 0, (syscall_t)mutate6},
+ {"serialize", 0, (syscall_t)serialize},
{"syz_test", 1000000, (syscall_t)syz_test},
{"syz_test$align0", 1000000, (syscall_t)syz_test},
{"syz_test$align1", 1000000, (syscall_t)syz_test},
diff --git a/prog/encoding.go b/prog/encoding.go
index 95e312662..4d8150959 100644
--- a/prog/encoding.go
+++ b/prog/encoding.go
@@ -8,7 +8,6 @@ import (
"bytes"
"encoding/hex"
"fmt"
- "io"
"strconv"
)
@@ -54,7 +53,7 @@ func (p *Prog) Serialize() []byte {
return buf.Bytes()
}
-func serialize(arg Arg, buf io.Writer, vars map[Arg]int, varSeq *int) {
+func serialize(arg Arg, buf *bytes.Buffer, vars map[Arg]int, varSeq *int) {
if arg == nil {
fmt.Fprintf(buf, "nil")
return
@@ -75,7 +74,15 @@ func serialize(arg Arg, buf io.Writer, vars map[Arg]int, varSeq *int) {
fmt.Fprintf(buf, "&%v=", serializeAddr(arg))
serialize(a.Res, buf, vars, varSeq)
case *DataArg:
- fmt.Fprintf(buf, "\"%v\"", hex.EncodeToString(a.Data))
+ 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)
case *GroupArg:
var delims []byte
switch arg.Type().(type) {
@@ -125,8 +132,7 @@ func (target *Target) Deserialize(data []byte) (prog *Prog, err error) {
prog = &Prog{
Target: target,
}
- p := &parser{r: bufio.NewScanner(bytes.NewReader(data))}
- p.r.Buffer(nil, maxLineLen)
+ p := newParser(data)
vars := make(map[string]Arg)
for p.Scan() {
if p.EOF() || p.Char() == '#' {
@@ -276,16 +282,10 @@ func (target *Target) parseArg(typ Type, p *parser, vars map[string]Arg) (Arg, e
return nil, err
}
arg = MakeConstArg(typ, pages*target.PageSize)
- case '"':
- p.Parse('"')
- val := ""
- if p.Char() != '"' {
- val = p.Ident()
- }
- p.Parse('"')
- data, err := hex.DecodeString(val)
+ case '"', '\'':
+ data, err := deserializeData(p)
if err != nil {
- return nil, fmt.Errorf("data arg has bad value '%v'", val)
+ return nil, err
}
if !typ.Varlen() {
if diff := int(typ.Size()) - len(data); diff > 0 {
@@ -475,6 +475,114 @@ func parseAddr(p *parser, base bool) (uint64, int, uint64, error) {
return page, int(off), size, nil
}
+func serializeData(buf *bytes.Buffer, data []byte) {
+ readable := true
+ for _, v := range data {
+ if v >= 0x20 && v < 0x7f {
+ continue
+ }
+ switch v {
+ case 0, '\a', '\b', '\f', '\n', '\r', '\t', '\v':
+ continue
+ }
+ readable = false
+ break
+ }
+ if !readable || len(data) == 0 {
+ fmt.Fprintf(buf, "\"%v\"", hex.EncodeToString(data))
+ return
+ }
+ buf.WriteByte('\'')
+ for _, v := range data {
+ switch v {
+ case 0:
+ buf.Write([]byte{'\\', 'x', '0', '0'})
+ case '\a':
+ buf.Write([]byte{'\\', 'a'})
+ case '\b':
+ buf.Write([]byte{'\\', 'b'})
+ case '\f':
+ buf.Write([]byte{'\\', 'f'})
+ case '\n':
+ buf.Write([]byte{'\\', 'n'})
+ case '\r':
+ buf.Write([]byte{'\\', 'r'})
+ case '\t':
+ buf.Write([]byte{'\\', 't'})
+ case '\v':
+ buf.Write([]byte{'\\', 'v'})
+ case '\'':
+ buf.Write([]byte{'\\', '\''})
+ case '\\':
+ buf.Write([]byte{'\\', '\\'})
+ default:
+ buf.WriteByte(v)
+ }
+ }
+ buf.WriteByte('\'')
+}
+
+func deserializeData(p *parser) ([]byte, error) {
+ var data []byte
+ if p.Char() == '"' {
+ p.Parse('"')
+ val := ""
+ if p.Char() != '"' {
+ val = p.Ident()
+ }
+ p.Parse('"')
+ var err error
+ data, err = hex.DecodeString(val)
+ if err != nil {
+ return nil, fmt.Errorf("data arg has bad value %q", val)
+ }
+ } else {
+ if p.consume() != '\'' {
+ return nil, fmt.Errorf("data arg does not start with \" nor with '")
+ }
+ for p.Char() != '\'' && p.Char() != 0 {
+ v := p.consume()
+ if v != '\\' {
+ data = append(data, v)
+ continue
+ }
+ v = p.consume()
+ switch v {
+ case 'x':
+ hi := p.consume()
+ lo := p.consume()
+ if lo != '0' || hi != '0' {
+ return nil, fmt.Errorf(
+ "invalid \\x%c%c escape sequence in data arg", hi, lo)
+ }
+ data = append(data, 0)
+ case 'a':
+ data = append(data, '\a')
+ case 'b':
+ data = append(data, '\b')
+ case 'f':
+ data = append(data, '\f')
+ case 'n':
+ data = append(data, '\n')
+ case 'r':
+ data = append(data, '\r')
+ case 't':
+ data = append(data, '\t')
+ case 'v':
+ data = append(data, '\v')
+ case '\'':
+ data = append(data, '\'')
+ case '\\':
+ data = append(data, '\\')
+ default:
+ return nil, fmt.Errorf("invalid \\%c escape sequence in data arg", v)
+ }
+ }
+ p.Parse('\'')
+ }
+ return data, nil
+}
+
type parser struct {
r *bufio.Scanner
s string
@@ -483,6 +591,12 @@ type parser struct {
e error
}
+func newParser(data []byte) *parser {
+ p := &parser{r: bufio.NewScanner(bytes.NewReader(data))}
+ p.r.Buffer(nil, maxLineLen)
+ return p
+}
+
func (p *parser) Scan() bool {
if p.e != nil {
return false
@@ -536,6 +650,19 @@ func (p *parser) Parse(ch byte) {
p.SkipWs()
}
+func (p *parser) consume() byte {
+ if p.e != nil {
+ return 0
+ }
+ if p.EOF() {
+ p.failf("unexpected eof")
+ return 0
+ }
+ v := p.s[p.i]
+ p.i++
+ return v
+}
+
func (p *parser) SkipWs() {
for p.i < len(p.s) && (p.s[p.i] == ' ' || p.s[p.i] == '\t') {
p.i++
diff --git a/prog/encoding_test.go b/prog/encoding_test.go
index a46428526..39063a055 100644
--- a/prog/encoding_test.go
+++ b/prog/encoding_test.go
@@ -4,7 +4,9 @@
package prog
import (
+ "bytes"
"fmt"
+ "math/rand"
"reflect"
"regexp"
"sort"
@@ -20,6 +22,30 @@ func setToArray(s map[string]struct{}) []string {
return a
}
+func TestSerializeData(t *testing.T) {
+ t.Parallel()
+ r := rand.New(rand.NewSource(0))
+ for i := 0; i < 1e4; i++ {
+ data := make([]byte, r.Intn(4))
+ for i := range data {
+ data[i] = byte(r.Intn(256))
+ }
+ buf := new(bytes.Buffer)
+ serializeData(buf, data)
+ p := newParser(buf.Bytes())
+ if !p.Scan() {
+ t.Fatalf("parser does not scan")
+ }
+ data1, err := deserializeData(p)
+ if err != nil {
+ t.Fatalf("failed to deserialize %q -> %s: %v", data, buf.Bytes(), err)
+ }
+ if !bytes.Equal(data, data1) {
+ t.Fatalf("corrupted data %q -> %s -> %q", data, buf.Bytes(), data1)
+ }
+ }
+}
+
func TestCallSet(t *testing.T) {
tests := []struct {
prog string
@@ -137,3 +163,24 @@ func TestDeserialize(t *testing.T) {
}
}
}
+
+func TestSerializeDeserialize(t *testing.T) {
+ target := initTargetTest(t, "test", "64")
+ tests := [][2]string{
+ {
+ `serialize(&(0x7f0000408000)={"6861736800000000000000000000", "4849000000"})`,
+ `serialize(&(0x7f0000408000)={'hash\x00', 'HI\x00'})`,
+ },
+ }
+ for _, test := range tests {
+ p, err := target.Deserialize([]byte(test[0]))
+ if err != nil {
+ t.Fatal(err)
+ }
+ data := p.Serialize()
+ test[1] += "\n"
+ if string(data) != test[1] {
+ t.Fatalf("\ngot : %s\nwant: %s", data, test[1])
+ }
+ }
+}
diff --git a/sys/test/32.go b/sys/test/32.go
index e09aaf9f2..3431929d0 100644
--- a/sys/test/32.go
+++ b/sys/test/32.go
@@ -14,6 +14,10 @@ var resources_32 = []*ResourceDesc{
}
var structDescs_32 = []*KeyedStruct{
+ {Key: StructKey{Name: "serialize_struct"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "serialize_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"}},
+ }}},
{Key: StructKey{Name: "syz_align0"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "syz_align0", TypeSize: 24}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "f0", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 2}}, IsPad: true},
@@ -400,213 +404,216 @@ 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, NR: 1000000, Name: "syz_test", CallName: "syz_test"},
- {ID: 9, NR: 1000000, Name: "syz_test$align0", CallName: "syz_test", Args: []Type{
+ {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: 9, NR: 1000000, Name: "syz_test", CallName: "syz_test"},
+ {ID: 10, 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: 10, NR: 1000000, Name: "syz_test$align1", CallName: "syz_test", Args: []Type{
+ {ID: 11, 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: 11, NR: 1000000, Name: "syz_test$align2", CallName: "syz_test", Args: []Type{
+ {ID: 12, 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: 12, NR: 1000000, Name: "syz_test$align3", CallName: "syz_test", Args: []Type{
+ {ID: 13, 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: 13, NR: 1000000, Name: "syz_test$align4", CallName: "syz_test", Args: []Type{
+ {ID: 14, 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: 14, NR: 1000000, Name: "syz_test$align5", CallName: "syz_test", Args: []Type{
+ {ID: 15, 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: 15, NR: 1000000, Name: "syz_test$align6", CallName: "syz_test", Args: []Type{
+ {ID: 16, 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: 16, NR: 1000000, Name: "syz_test$array0", CallName: "syz_test", Args: []Type{
+ {ID: 17, 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: 17, NR: 1000000, Name: "syz_test$array1", CallName: "syz_test", Args: []Type{
+ {ID: 18, 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: 18, NR: 1000000, Name: "syz_test$array2", CallName: "syz_test", Args: []Type{
+ {ID: 19, 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: 19, NR: 1000000, Name: "syz_test$bf0", CallName: "syz_test", Args: []Type{
+ {ID: 20, 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: 20, NR: 1000000, Name: "syz_test$bf1", CallName: "syz_test", Args: []Type{
+ {ID: 21, 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: 21, NR: 1000000, Name: "syz_test$csum_encode", CallName: "syz_test", Args: []Type{
+ {ID: 22, 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: 22, NR: 1000000, Name: "syz_test$csum_ipv4", CallName: "syz_test", Args: []Type{
+ {ID: 23, 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: 23, NR: 1000000, Name: "syz_test$csum_ipv4_tcp", CallName: "syz_test", Args: []Type{
+ {ID: 24, 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: 24, NR: 1000000, Name: "syz_test$csum_ipv4_udp", CallName: "syz_test", Args: []Type{
+ {ID: 25, 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: 25, NR: 1000000, Name: "syz_test$csum_ipv6_icmp", CallName: "syz_test", Args: []Type{
+ {ID: 26, 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: 26, NR: 1000000, Name: "syz_test$csum_ipv6_tcp", CallName: "syz_test", Args: []Type{
+ {ID: 27, 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: 27, NR: 1000000, Name: "syz_test$csum_ipv6_udp", CallName: "syz_test", Args: []Type{
+ {ID: 28, 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: 28, NR: 1000000, Name: "syz_test$end0", CallName: "syz_test", Args: []Type{
+ {ID: 29, 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: 29, NR: 1000000, Name: "syz_test$end1", CallName: "syz_test", Args: []Type{
+ {ID: 30, 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: 30, NR: 1000000, Name: "syz_test$hint_data", CallName: "syz_test", Args: []Type{
+ {ID: 31, 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: 31, NR: 1000000, Name: "syz_test$int", CallName: "syz_test", Args: []Type{
+ {ID: 32, 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: 32, NR: 1000000, Name: "syz_test$length0", CallName: "syz_test", Args: []Type{
+ {ID: 33, 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: 33, NR: 1000000, Name: "syz_test$length1", CallName: "syz_test", Args: []Type{
+ {ID: 34, 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: 34, NR: 1000000, Name: "syz_test$length10", CallName: "syz_test", Args: []Type{
+ {ID: 35, 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: 35, NR: 1000000, Name: "syz_test$length11", CallName: "syz_test", Args: []Type{
+ {ID: 36, 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: 36, NR: 1000000, Name: "syz_test$length12", CallName: "syz_test", Args: []Type{
+ {ID: 37, 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: 37, NR: 1000000, Name: "syz_test$length13", CallName: "syz_test", Args: []Type{
+ {ID: 38, 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: 38, NR: 1000000, Name: "syz_test$length14", CallName: "syz_test", Args: []Type{
+ {ID: 39, 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: 39, NR: 1000000, Name: "syz_test$length15", CallName: "syz_test", Args: []Type{
+ {ID: 40, 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: 40, NR: 1000000, Name: "syz_test$length16", CallName: "syz_test", Args: []Type{
+ {ID: 41, 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: 41, NR: 1000000, Name: "syz_test$length17", CallName: "syz_test", Args: []Type{
+ {ID: 42, 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: 42, NR: 1000000, Name: "syz_test$length18", CallName: "syz_test", Args: []Type{
+ {ID: 43, 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: 43, NR: 1000000, Name: "syz_test$length19", CallName: "syz_test", Args: []Type{
+ {ID: 44, 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: 44, NR: 1000000, Name: "syz_test$length2", CallName: "syz_test", Args: []Type{
+ {ID: 45, 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: 45, NR: 1000000, Name: "syz_test$length20", CallName: "syz_test", Args: []Type{
+ {ID: 46, 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: 46, NR: 1000000, Name: "syz_test$length3", CallName: "syz_test", Args: []Type{
+ {ID: 47, 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: 47, NR: 1000000, Name: "syz_test$length4", CallName: "syz_test", Args: []Type{
+ {ID: 48, 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: 48, NR: 1000000, Name: "syz_test$length5", CallName: "syz_test", Args: []Type{
+ {ID: 49, 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: 49, NR: 1000000, Name: "syz_test$length6", CallName: "syz_test", Args: []Type{
+ {ID: 50, 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: 50, NR: 1000000, Name: "syz_test$length7", CallName: "syz_test", Args: []Type{
+ {ID: 51, 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: 51, NR: 1000000, Name: "syz_test$length8", CallName: "syz_test", Args: []Type{
+ {ID: 52, 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: 52, NR: 1000000, Name: "syz_test$length9", CallName: "syz_test", Args: []Type{
+ {ID: 53, 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: 53, 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: 54, NR: 1000000, Name: "syz_test$opt0", CallName: "syz_test", Args: []Type{
+ {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{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "a0", TypeSize: 4, IsOptional: true}}},
}},
- {ID: 55, NR: 1000000, Name: "syz_test$opt1", CallName: "syz_test", Args: []Type{
+ {ID: 56, 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: 56, NR: 1000000, Name: "syz_test$opt2", CallName: "syz_test", Args: []Type{
+ {ID: 57, NR: 1000000, Name: "syz_test$opt2", CallName: "syz_test", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "a0", TypeSize: 4, IsOptional: true}},
}},
- {ID: 57, NR: 1000000, Name: "syz_test$recur0", CallName: "syz_test", Args: []Type{
+ {ID: 58, 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: 58, NR: 1000000, Name: "syz_test$recur1", CallName: "syz_test", Args: []Type{
+ {ID: 59, 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: 59, NR: 1000000, Name: "syz_test$recur2", CallName: "syz_test", Args: []Type{
+ {ID: 60, 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: 60, NR: 1000000, Name: "syz_test$regression0", CallName: "syz_test", Args: []Type{
+ {ID: 61, 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: 61, NR: 1000000, Name: "syz_test$regression1", CallName: "syz_test", Args: []Type{
+ {ID: 62, 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: 62, NR: 1000000, Name: "syz_test$regression2", CallName: "syz_test", Args: []Type{
+ {ID: 63, 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: 63, NR: 1000000, Name: "syz_test$res0", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
- {ID: 64, NR: 1000000, Name: "syz_test$res1", CallName: "syz_test", Args: []Type{
+ {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{
&ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "a0", TypeSize: 4}},
}},
- {ID: 65, NR: 1000000, Name: "syz_test$struct", CallName: "syz_test", Args: []Type{
+ {ID: 66, 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: 66, NR: 1000000, Name: "syz_test$text_x86_16", CallName: "syz_test", Args: []Type{
+ {ID: 67, 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: 67, NR: 1000000, Name: "syz_test$text_x86_32", CallName: "syz_test", Args: []Type{
+ {ID: 68, 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: 68, NR: 1000000, Name: "syz_test$text_x86_64", CallName: "syz_test", Args: []Type{
+ {ID: 69, 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: 69, NR: 1000000, Name: "syz_test$text_x86_real", CallName: "syz_test", Args: []Type{
+ {ID: 70, 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: 70, NR: 1000000, Name: "syz_test$union0", CallName: "syz_test", Args: []Type{
+ {ID: 71, 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: 71, NR: 1000000, Name: "syz_test$union1", CallName: "syz_test", Args: []Type{
+ {ID: 72, 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: 72, NR: 1000000, Name: "syz_test$union2", CallName: "syz_test", Args: []Type{
+ {ID: 73, 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: 73, NR: 1000000, Name: "syz_test$vma0", CallName: "syz_test", Args: []Type{
+ {ID: 74, 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},
@@ -623,4 +630,4 @@ var consts_32 = []ConstValue{
{Name: "ONLY_32BITS_CONST", Value: 1},
}
-const revision_32 = "d250d71b6658517f5cde664a9f26c969ddb5c4d1"
+const revision_32 = "ab5b2b746192f26c994482e664534cbf487e3dbe"
diff --git a/sys/test/64.go b/sys/test/64.go
index 79286efc0..8618c6b91 100644
--- a/sys/test/64.go
+++ b/sys/test/64.go
@@ -14,6 +14,10 @@ var resources_64 = []*ResourceDesc{
}
var structDescs_64 = []*KeyedStruct{
+ {Key: StructKey{Name: "serialize_struct"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "serialize_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"}},
+ }}},
{Key: StructKey{Name: "syz_align0"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "syz_align0", TypeSize: 24}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "f0", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 2}}, IsPad: true},
@@ -399,213 +403,216 @@ 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, NR: 1000000, Name: "syz_test", CallName: "syz_test"},
- {ID: 9, NR: 1000000, Name: "syz_test$align0", CallName: "syz_test", Args: []Type{
+ {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: 9, NR: 1000000, Name: "syz_test", CallName: "syz_test"},
+ {ID: 10, 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: 10, NR: 1000000, Name: "syz_test$align1", CallName: "syz_test", Args: []Type{
+ {ID: 11, 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: 11, NR: 1000000, Name: "syz_test$align2", CallName: "syz_test", Args: []Type{
+ {ID: 12, 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: 12, NR: 1000000, Name: "syz_test$align3", CallName: "syz_test", Args: []Type{
+ {ID: 13, 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: 13, NR: 1000000, Name: "syz_test$align4", CallName: "syz_test", Args: []Type{
+ {ID: 14, 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: 14, NR: 1000000, Name: "syz_test$align5", CallName: "syz_test", Args: []Type{
+ {ID: 15, 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: 15, NR: 1000000, Name: "syz_test$align6", CallName: "syz_test", Args: []Type{
+ {ID: 16, 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: 16, NR: 1000000, Name: "syz_test$array0", CallName: "syz_test", Args: []Type{
+ {ID: 17, 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: 17, NR: 1000000, Name: "syz_test$array1", CallName: "syz_test", Args: []Type{
+ {ID: 18, 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: 18, NR: 1000000, Name: "syz_test$array2", CallName: "syz_test", Args: []Type{
+ {ID: 19, 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: 19, NR: 1000000, Name: "syz_test$bf0", CallName: "syz_test", Args: []Type{
+ {ID: 20, 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: 20, NR: 1000000, Name: "syz_test$bf1", CallName: "syz_test", Args: []Type{
+ {ID: 21, 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: 21, NR: 1000000, Name: "syz_test$csum_encode", CallName: "syz_test", Args: []Type{
+ {ID: 22, 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: 22, NR: 1000000, Name: "syz_test$csum_ipv4", CallName: "syz_test", Args: []Type{
+ {ID: 23, 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: 23, NR: 1000000, Name: "syz_test$csum_ipv4_tcp", CallName: "syz_test", Args: []Type{
+ {ID: 24, 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: 24, NR: 1000000, Name: "syz_test$csum_ipv4_udp", CallName: "syz_test", Args: []Type{
+ {ID: 25, 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: 25, NR: 1000000, Name: "syz_test$csum_ipv6_icmp", CallName: "syz_test", Args: []Type{
+ {ID: 26, 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: 26, NR: 1000000, Name: "syz_test$csum_ipv6_tcp", CallName: "syz_test", Args: []Type{
+ {ID: 27, 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: 27, NR: 1000000, Name: "syz_test$csum_ipv6_udp", CallName: "syz_test", Args: []Type{
+ {ID: 28, 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: 28, NR: 1000000, Name: "syz_test$end0", CallName: "syz_test", Args: []Type{
+ {ID: 29, 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: 29, NR: 1000000, Name: "syz_test$end1", CallName: "syz_test", Args: []Type{
+ {ID: 30, 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: 30, NR: 1000000, Name: "syz_test$hint_data", CallName: "syz_test", Args: []Type{
+ {ID: 31, 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: 31, NR: 1000000, Name: "syz_test$int", CallName: "syz_test", Args: []Type{
+ {ID: 32, 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: 32, NR: 1000000, Name: "syz_test$length0", CallName: "syz_test", Args: []Type{
+ {ID: 33, 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: 33, NR: 1000000, Name: "syz_test$length1", CallName: "syz_test", Args: []Type{
+ {ID: 34, 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: 34, NR: 1000000, Name: "syz_test$length10", CallName: "syz_test", Args: []Type{
+ {ID: 35, 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: 35, NR: 1000000, Name: "syz_test$length11", CallName: "syz_test", Args: []Type{
+ {ID: 36, 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: 36, NR: 1000000, Name: "syz_test$length12", CallName: "syz_test", Args: []Type{
+ {ID: 37, 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: 37, NR: 1000000, Name: "syz_test$length13", CallName: "syz_test", Args: []Type{
+ {ID: 38, 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: 38, NR: 1000000, Name: "syz_test$length14", CallName: "syz_test", Args: []Type{
+ {ID: 39, 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: 39, NR: 1000000, Name: "syz_test$length15", CallName: "syz_test", Args: []Type{
+ {ID: 40, 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: 40, NR: 1000000, Name: "syz_test$length16", CallName: "syz_test", Args: []Type{
+ {ID: 41, 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: 41, NR: 1000000, Name: "syz_test$length17", CallName: "syz_test", Args: []Type{
+ {ID: 42, 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: 42, NR: 1000000, Name: "syz_test$length18", CallName: "syz_test", Args: []Type{
+ {ID: 43, 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: 43, NR: 1000000, Name: "syz_test$length19", CallName: "syz_test", Args: []Type{
+ {ID: 44, 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: 44, NR: 1000000, Name: "syz_test$length2", CallName: "syz_test", Args: []Type{
+ {ID: 45, 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: 45, NR: 1000000, Name: "syz_test$length20", CallName: "syz_test", Args: []Type{
+ {ID: 46, 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: 46, NR: 1000000, Name: "syz_test$length3", CallName: "syz_test", Args: []Type{
+ {ID: 47, 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: 47, NR: 1000000, Name: "syz_test$length4", CallName: "syz_test", Args: []Type{
+ {ID: 48, 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: 48, NR: 1000000, Name: "syz_test$length5", CallName: "syz_test", Args: []Type{
+ {ID: 49, 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: 49, NR: 1000000, Name: "syz_test$length6", CallName: "syz_test", Args: []Type{
+ {ID: 50, 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: 50, NR: 1000000, Name: "syz_test$length7", CallName: "syz_test", Args: []Type{
+ {ID: 51, 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: 51, NR: 1000000, Name: "syz_test$length8", CallName: "syz_test", Args: []Type{
+ {ID: 52, 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: 52, NR: 1000000, Name: "syz_test$length9", CallName: "syz_test", Args: []Type{
+ {ID: 53, 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: 53, 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: 54, NR: 1000000, Name: "syz_test$opt0", CallName: "syz_test", Args: []Type{
+ {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{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "a0", TypeSize: 8, IsOptional: true}}},
}},
- {ID: 55, NR: 1000000, Name: "syz_test$opt1", CallName: "syz_test", Args: []Type{
+ {ID: 56, 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: 56, NR: 1000000, Name: "syz_test$opt2", CallName: "syz_test", Args: []Type{
+ {ID: 57, NR: 1000000, Name: "syz_test$opt2", CallName: "syz_test", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "a0", TypeSize: 8, IsOptional: true}},
}},
- {ID: 57, NR: 1000000, Name: "syz_test$recur0", CallName: "syz_test", Args: []Type{
+ {ID: 58, 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: 58, NR: 1000000, Name: "syz_test$recur1", CallName: "syz_test", Args: []Type{
+ {ID: 59, 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: 59, NR: 1000000, Name: "syz_test$recur2", CallName: "syz_test", Args: []Type{
+ {ID: 60, 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: 60, NR: 1000000, Name: "syz_test$regression0", CallName: "syz_test", Args: []Type{
+ {ID: 61, 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: 61, NR: 1000000, Name: "syz_test$regression1", CallName: "syz_test", Args: []Type{
+ {ID: 62, 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: 62, NR: 1000000, Name: "syz_test$regression2", CallName: "syz_test", Args: []Type{
+ {ID: 63, 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: 63, NR: 1000000, Name: "syz_test$res0", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
- {ID: 64, NR: 1000000, Name: "syz_test$res1", CallName: "syz_test", Args: []Type{
+ {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{
&ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "a0", TypeSize: 4}},
}},
- {ID: 65, NR: 1000000, Name: "syz_test$struct", CallName: "syz_test", Args: []Type{
+ {ID: 66, 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: 66, NR: 1000000, Name: "syz_test$text_x86_16", CallName: "syz_test", Args: []Type{
+ {ID: 67, 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: 67, NR: 1000000, Name: "syz_test$text_x86_32", CallName: "syz_test", Args: []Type{
+ {ID: 68, 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: 68, NR: 1000000, Name: "syz_test$text_x86_64", CallName: "syz_test", Args: []Type{
+ {ID: 69, 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: 69, NR: 1000000, Name: "syz_test$text_x86_real", CallName: "syz_test", Args: []Type{
+ {ID: 70, 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: 70, NR: 1000000, Name: "syz_test$union0", CallName: "syz_test", Args: []Type{
+ {ID: 71, 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: 71, NR: 1000000, Name: "syz_test$union1", CallName: "syz_test", Args: []Type{
+ {ID: 72, 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: 72, NR: 1000000, Name: "syz_test$union2", CallName: "syz_test", Args: []Type{
+ {ID: 73, 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: 73, NR: 1000000, Name: "syz_test$vma0", CallName: "syz_test", Args: []Type{
+ {ID: 74, 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},
@@ -621,4 +628,4 @@ var consts_64 = []ConstValue{
{Name: "IPPROTO_UDP", Value: 17},
}
-const revision_64 = "42c3155912d115b719bd9a905c83c2419b5935f2"
+const revision_64 = "1dd179fe95626e284e24e4e636195924bced24ef"
diff --git a/sys/test/test.txt b/sys/test/test.txt
index 561de0db8..69f987a16 100644
--- a/sys/test/test.txt
+++ b/sys/test/test.txt
@@ -555,3 +555,14 @@ mutate5(filename ptr[in, filename], flags flags[open_flags]) fd
mutate6(fd fd, data ptr[in, array[int8]], size bytesize[data])
open_flags = 0xabababababababab, 0xcdcdcdcdcdcdcdcd
+
+# Serialization tests.
+
+serialize(a ptr[in, serialize_struct])
+
+serialize_struct {
+ a string[serialize_strings, 10]
+ b string[serialize_strings, 5]
+}
+
+serialize_strings = "aaa", "bbb"