mirror of
https://github.com/reactos/syzkaller.git
synced 2025-01-31 17:12:52 +00:00
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:
parent
eaeccee1d7
commit
8ef0050706
@ -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},
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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 {
|
||||
|
@ -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 {
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
40
prog/prog.go
40
prog/prog.go
@ -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())
|
||||
|
40
prog/rand.go
40
prog/rand.go
@ -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")
|
||||
|
@ -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:
|
||||
|
144
sys/test/32.go
144
sys/test/32.go
@ -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"
|
||||
|
144
sys/test/64.go
144
sys/test/64.go
@ -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"
|
||||
|
@ -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]
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user