diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-02-17 16:51:52 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-02-17 19:02:12 +0100 |
| commit | dd4fcef5a270fc39a56c0be8122fc6f18314f3cd (patch) | |
| tree | c7d1dccb26b31dec062b7d493060b624c8a84f0f | |
| parent | d21a39fc48c781b8bc818b537ed4bf495d5daa89 (diff) | |
pkg/compiler: allow len of var-len arrays
All netfilter subsystems use this unfortunately,
so demote this to a warning.
| -rw-r--r-- | executor/syscalls_test.h | 10 | ||||
| -rw-r--r-- | pkg/compiler/check.go | 2 | ||||
| -rw-r--r-- | pkg/compiler/testdata/all.txt | 2 | ||||
| -rw-r--r-- | pkg/compiler/testdata/errors2.txt | 2 | ||||
| -rw-r--r-- | prog/size.go | 3 | ||||
| -rw-r--r-- | sys/test/32.go | 66 | ||||
| -rw-r--r-- | sys/test/64.go | 66 | ||||
| -rw-r--r-- | sys/test/test.txt | 1 |
8 files changed, 83 insertions, 69 deletions
diff --git a/executor/syscalls_test.h b/executor/syscalls_test.h index d81dc0694..13e643dfc 100644 --- a/executor/syscalls_test.h +++ b/executor/syscalls_test.h @@ -2,8 +2,8 @@ #if 0 #define GOARCH "32" -#define SYZ_REVISION "8c0396f8a2a8a97239cf4a67f73bb2c345ced9bf" -unsigned syscall_count = 84; +#define SYZ_REVISION "229a33891b79d4c76384836d58be89caaab83684" +unsigned syscall_count = 85; call_t syscalls[] = { {"mmap", 0, (syscall_t)mmap}, {"mutate0", 0, (syscall_t)mutate0}, @@ -59,6 +59,7 @@ call_t syscalls[] = { {"syz_test$length22", 0, (syscall_t)syz_test}, {"syz_test$length23", 0, (syscall_t)syz_test}, {"syz_test$length24", 0, (syscall_t)syz_test}, + {"syz_test$length25", 0, (syscall_t)syz_test}, {"syz_test$length3", 0, (syscall_t)syz_test}, {"syz_test$length4", 0, (syscall_t)syz_test}, {"syz_test$length5", 0, (syscall_t)syz_test}, @@ -95,8 +96,8 @@ call_t syscalls[] = { #if 0 #define GOARCH "64" -#define SYZ_REVISION "b95102f518b7d55de0f591cbf5642d978a068932" -unsigned syscall_count = 84; +#define SYZ_REVISION "72bf9b428d7ccdf1adbb2ef093b656ca3564ee14" +unsigned syscall_count = 85; call_t syscalls[] = { {"mmap", 0, (syscall_t)mmap}, {"mutate0", 0, (syscall_t)mutate0}, @@ -152,6 +153,7 @@ call_t syscalls[] = { {"syz_test$length22", 0, (syscall_t)syz_test}, {"syz_test$length23", 0, (syscall_t)syz_test}, {"syz_test$length24", 0, (syscall_t)syz_test}, + {"syz_test$length25", 0, (syscall_t)syz_test}, {"syz_test$length3", 0, (syscall_t)syz_test}, {"syz_test$length4", 0, (syscall_t)syz_test}, {"syz_test$length5", 0, (syscall_t)syz_test}, diff --git a/pkg/compiler/check.go b/pkg/compiler/check.go index 16960b47e..003fe424f 100644 --- a/pkg/compiler/check.go +++ b/pkg/compiler/check.go @@ -301,7 +301,7 @@ func (comp *compiler) checkLenTarget(t *ast.Type, name, target string, fields [] desc, args, _ = comp.getArgsBase(inner, "", prog.DirIn, false) } if desc == typeArray && comp.isVarlen(args[0]) { - comp.error(t.Pos, "len target %v refer to an array with"+ + comp.warning(t.Pos, "len target %v refer to an array with"+ " variable-size elements (do you mean bytesize?)", target) } } diff --git a/pkg/compiler/testdata/all.txt b/pkg/compiler/testdata/all.txt index 6f106a25f..2bf76c28b 100644 --- a/pkg/compiler/testdata/all.txt +++ b/pkg/compiler/testdata/all.txt @@ -42,6 +42,8 @@ type len_temp2[DATA] { } foo$len_templ(a ptr[in, len_templ1[int8, int16]]) +foo$len_var0(a ptr[in, array[string]], b len[a]) +foo$len_var1(a ptr[in, array[string]], b ptr[in, len[a, int32]]) # Void type. diff --git a/pkg/compiler/testdata/errors2.txt b/pkg/compiler/testdata/errors2.txt index 67127c6ad..6902553af 100644 --- a/pkg/compiler/testdata/errors2.txt +++ b/pkg/compiler/testdata/errors2.txt @@ -64,8 +64,6 @@ foo$104(a len[parent]) ### len target parent does not exist foo$105(a ptr[in, int32], b ptr[in, array[len[a, int32]]]) foo$106(a int32, b ptr[in, csum[a, inet, int32]]) foo$107(a int32, b ptr[in, csum[c, inet, int32]]) ### csum target c does not exist -foo$108(a ptr[in, array[string]], b len[a]) ### len target a refer to an array with variable-size elements (do you mean bytesize?) -foo$109(a ptr[in, array[string]], b ptr[in, len[a, int32]]) ### len target a refer to an array with variable-size elements (do you mean bytesize?) s1 { f1 len[s2, int32] ### len target s2 does not exist diff --git a/prog/size.go b/prog/size.go index e2451fe15..67f7ef754 100644 --- a/prog/size.go +++ b/prog/size.go @@ -127,6 +127,9 @@ func (r *randGen) mutateSize(arg *ConstArg, parent []Arg) bool { case *VmaType: return false case *ArrayType: + if targetType.Type.Varlen() { + return false + } elemSize = targetType.Type.Size() } } diff --git a/sys/test/32.go b/sys/test/32.go index e1783c867..7eb9ad351 100644 --- a/sys/test/32.go +++ b/sys/test/32.go @@ -587,94 +587,98 @@ var syscalls_32 = []*Syscall{ {ID: 53, Name: "syz_test$length24", CallName: "syz_test", Args: []Type{ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "len_nontemp5"}}}, }}, - {ID: 54, Name: "syz_test$length3", CallName: "syz_test", Args: []Type{ + {ID: 54, Name: "syz_test$length25", CallName: "syz_test", Args: []Type{ + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}}}, + &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"}, + }}, + {ID: 55, 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: 55, Name: "syz_test$length4", CallName: "syz_test", Args: []Type{ + {ID: 56, 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: 56, Name: "syz_test$length5", CallName: "syz_test", Args: []Type{ + {ID: 57, 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: 57, Name: "syz_test$length6", CallName: "syz_test", Args: []Type{ + {ID: 58, 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: 58, Name: "syz_test$length7", CallName: "syz_test", Args: []Type{ + {ID: 59, 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: 59, Name: "syz_test$length8", CallName: "syz_test", Args: []Type{ + {ID: 60, 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: 60, Name: "syz_test$length9", CallName: "syz_test", Args: []Type{ + {ID: 61, 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: 61, Name: "syz_test$missing_resource", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_missing_const_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}}, - {ID: 62, Name: "syz_test$opt0", CallName: "syz_test", Args: []Type{ + {ID: 62, Name: "syz_test$missing_resource", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_missing_const_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}}, + {ID: 63, Name: "syz_test$opt0", CallName: "syz_test", Args: []Type{ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "a0", TypeSize: 4, IsOptional: true}}}, }}, - {ID: 63, Name: "syz_test$opt1", CallName: "syz_test", Args: []Type{ + {ID: 64, 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: 64, Name: "syz_test$opt2", CallName: "syz_test", Args: []Type{ + {ID: 65, Name: "syz_test$opt2", CallName: "syz_test", Args: []Type{ &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "a0", TypeSize: 4, IsOptional: true}}, }}, - {ID: 65, Name: "syz_test$opt3", CallName: "syz_test", Args: []Type{ + {ID: 66, Name: "syz_test$opt3", CallName: "syz_test", Args: []Type{ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a0", TypeSize: 4, IsOptional: true}}, ValuesStart: 100, ValuesPerProc: 4}, }}, - {ID: 66, Name: "syz_test$recur0", CallName: "syz_test", Args: []Type{ + {ID: 67, 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: 67, Name: "syz_test$recur1", CallName: "syz_test", Args: []Type{ + {ID: 68, 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: 68, Name: "syz_test$recur2", CallName: "syz_test", Args: []Type{ + {ID: 69, 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: 69, Name: "syz_test$regression0", CallName: "syz_test", Args: []Type{ + {ID: 70, 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: 70, Name: "syz_test$regression1", CallName: "syz_test", Args: []Type{ + {ID: 71, Name: "syz_test$regression1", CallName: "syz_test", Args: []Type{ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "syz_regression1_struct"}}}}, }}, - {ID: 71, Name: "syz_test$regression2", CallName: "syz_test", Args: []Type{ + {ID: 72, 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: 72, Name: "syz_test$res0", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}}, - {ID: 73, Name: "syz_test$res1", CallName: "syz_test", Args: []Type{ + {ID: 73, Name: "syz_test$res0", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}}, + {ID: 74, Name: "syz_test$res1", CallName: "syz_test", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "a0", TypeSize: 4}}, }}, - {ID: 74, Name: "syz_test$struct", CallName: "syz_test", Args: []Type{ + {ID: 75, 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: 75, Name: "syz_test$syz_union3", CallName: "syz_test", Args: []Type{ + {ID: 76, Name: "syz_test$syz_union3", CallName: "syz_test", Args: []Type{ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &UnionType{Key: StructKey{Name: "syz_union3"}}}, }}, - {ID: 76, Name: "syz_test$text_x86_16", CallName: "syz_test", Args: []Type{ + {ID: 77, 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", IsVarlen: true}, Kind: 4, Text: 1}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"}, }}, - {ID: 77, Name: "syz_test$text_x86_32", CallName: "syz_test", Args: []Type{ + {ID: 78, 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", IsVarlen: true}, Kind: 4, Text: 2}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"}, }}, - {ID: 78, Name: "syz_test$text_x86_64", CallName: "syz_test", Args: []Type{ + {ID: 79, 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", IsVarlen: true}, Kind: 4, Text: 3}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"}, }}, - {ID: 79, Name: "syz_test$text_x86_real", CallName: "syz_test", Args: []Type{ + {ID: 80, 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", IsVarlen: true}, Kind: 4}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"}, }}, - {ID: 80, Name: "syz_test$union0", CallName: "syz_test", Args: []Type{ + {ID: 81, 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: 81, Name: "syz_test$union1", CallName: "syz_test", Args: []Type{ + {ID: 82, 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: 82, Name: "syz_test$union2", CallName: "syz_test", Args: []Type{ + {ID: 83, 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: 83, Name: "syz_test$vma0", CallName: "syz_test", Args: []Type{ + {ID: 84, 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}, @@ -691,4 +695,4 @@ var consts_32 = []ConstValue{ {Name: "ONLY_32BITS_CONST", Value: 1}, } -const revision_32 = "8c0396f8a2a8a97239cf4a67f73bb2c345ced9bf" +const revision_32 = "229a33891b79d4c76384836d58be89caaab83684" diff --git a/sys/test/64.go b/sys/test/64.go index 8cced3be3..943bd9ee0 100644 --- a/sys/test/64.go +++ b/sys/test/64.go @@ -586,94 +586,98 @@ var syscalls_64 = []*Syscall{ {ID: 53, Name: "syz_test$length24", CallName: "syz_test", Args: []Type{ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "len_nontemp5"}}}, }}, - {ID: 54, Name: "syz_test$length3", CallName: "syz_test", Args: []Type{ + {ID: 54, Name: "syz_test$length25", CallName: "syz_test", Args: []Type{ + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}}}, + &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"}, + }}, + {ID: 55, 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: 55, Name: "syz_test$length4", CallName: "syz_test", Args: []Type{ + {ID: 56, 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: 56, Name: "syz_test$length5", CallName: "syz_test", Args: []Type{ + {ID: 57, 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: 57, Name: "syz_test$length6", CallName: "syz_test", Args: []Type{ + {ID: 58, 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: 58, Name: "syz_test$length7", CallName: "syz_test", Args: []Type{ + {ID: 59, 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: 59, Name: "syz_test$length8", CallName: "syz_test", Args: []Type{ + {ID: 60, 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: 60, Name: "syz_test$length9", CallName: "syz_test", Args: []Type{ + {ID: 61, 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: 61, Name: "syz_test$missing_resource", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_missing_const_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}}, - {ID: 62, Name: "syz_test$opt0", CallName: "syz_test", Args: []Type{ + {ID: 62, Name: "syz_test$missing_resource", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_missing_const_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}}, + {ID: 63, Name: "syz_test$opt0", CallName: "syz_test", Args: []Type{ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "a0", TypeSize: 8, IsOptional: true}}}, }}, - {ID: 63, Name: "syz_test$opt1", CallName: "syz_test", Args: []Type{ + {ID: 64, 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: 64, Name: "syz_test$opt2", CallName: "syz_test", Args: []Type{ + {ID: 65, Name: "syz_test$opt2", CallName: "syz_test", Args: []Type{ &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "a0", TypeSize: 8, IsOptional: true}}, }}, - {ID: 65, Name: "syz_test$opt3", CallName: "syz_test", Args: []Type{ + {ID: 66, Name: "syz_test$opt3", CallName: "syz_test", Args: []Type{ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a0", TypeSize: 8, IsOptional: true}}, ValuesStart: 100, ValuesPerProc: 4}, }}, - {ID: 66, Name: "syz_test$recur0", CallName: "syz_test", Args: []Type{ + {ID: 67, 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: 67, Name: "syz_test$recur1", CallName: "syz_test", Args: []Type{ + {ID: 68, 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: 68, Name: "syz_test$recur2", CallName: "syz_test", Args: []Type{ + {ID: 69, 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: 69, Name: "syz_test$regression0", CallName: "syz_test", Args: []Type{ + {ID: 70, 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: 70, Name: "syz_test$regression1", CallName: "syz_test", Args: []Type{ + {ID: 71, Name: "syz_test$regression1", CallName: "syz_test", Args: []Type{ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "syz_regression1_struct"}}}}, }}, - {ID: 71, Name: "syz_test$regression2", CallName: "syz_test", Args: []Type{ + {ID: 72, 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: 72, Name: "syz_test$res0", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}}, - {ID: 73, Name: "syz_test$res1", CallName: "syz_test", Args: []Type{ + {ID: 73, Name: "syz_test$res0", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}}, + {ID: 74, Name: "syz_test$res1", CallName: "syz_test", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "a0", TypeSize: 4}}, }}, - {ID: 74, Name: "syz_test$struct", CallName: "syz_test", Args: []Type{ + {ID: 75, 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: 75, Name: "syz_test$syz_union3", CallName: "syz_test", Args: []Type{ + {ID: 76, Name: "syz_test$syz_union3", CallName: "syz_test", Args: []Type{ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "syz_union3"}}}, }}, - {ID: 76, Name: "syz_test$text_x86_16", CallName: "syz_test", Args: []Type{ + {ID: 77, 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", IsVarlen: true}, Kind: 4, Text: 1}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"}, }}, - {ID: 77, Name: "syz_test$text_x86_32", CallName: "syz_test", Args: []Type{ + {ID: 78, 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", IsVarlen: true}, Kind: 4, Text: 2}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"}, }}, - {ID: 78, Name: "syz_test$text_x86_64", CallName: "syz_test", Args: []Type{ + {ID: 79, 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", IsVarlen: true}, Kind: 4, Text: 3}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"}, }}, - {ID: 79, Name: "syz_test$text_x86_real", CallName: "syz_test", Args: []Type{ + {ID: 80, 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", IsVarlen: true}, Kind: 4}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"}, }}, - {ID: 80, Name: "syz_test$union0", CallName: "syz_test", Args: []Type{ + {ID: 81, 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: 81, Name: "syz_test$union1", CallName: "syz_test", Args: []Type{ + {ID: 82, 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: 82, Name: "syz_test$union2", CallName: "syz_test", Args: []Type{ + {ID: 83, 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: 83, Name: "syz_test$vma0", CallName: "syz_test", Args: []Type{ + {ID: 84, 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}, @@ -689,4 +693,4 @@ var consts_64 = []ConstValue{ {Name: "IPPROTO_UDP", Value: 17}, } -const revision_64 = "b95102f518b7d55de0f591cbf5642d978a068932" +const revision_64 = "72bf9b428d7ccdf1adbb2ef093b656ca3564ee14" diff --git a/sys/test/test.txt b/sys/test/test.txt index e6c852aa8..7745e236d 100644 --- a/sys/test/test.txt +++ b/sys/test/test.txt @@ -371,6 +371,7 @@ len_nontemp5 { } syz_test$length24(a ptr[in, len_nontemp5]) +syz_test$length25(a0 ptr[in, array[array[int8]]], a1 len[a0]) # Big endian |
