aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Konovalov <andreyknvl@google.com>2019-08-07 18:03:59 +0200
committerDmitry Vyukov <dvyukov@google.com>2019-08-08 15:34:27 +0200
commitd545e945ce3761556e10fd6b4c20a952c0e821a1 (patch)
tree9eac971ae8d917de598827c1941d872253d67080
parentbcc419e9414564fc64cdde076635d6295641f9a4 (diff)
sys/linux: add syz_open_dev$char_usb descriptions
syz_open_dev$char_usb opens char devices with major = USB_MAJOR. Sanitize its values to make sure it doesn't open other char/block devices.
-rw-r--r--executor/defs.h10
-rw-r--r--executor/syscalls.h15
-rw-r--r--sys/linux/dev_char_usb.txt11
-rw-r--r--sys/linux/dev_char_usb_386.const4
-rw-r--r--sys/linux/dev_char_usb_amd64.const4
-rw-r--r--sys/linux/dev_char_usb_arm.const4
-rw-r--r--sys/linux/dev_char_usb_arm64.const4
-rw-r--r--sys/linux/dev_char_usb_ppc64le.const4
-rw-r--r--sys/linux/gen/386.go19
-rw-r--r--sys/linux/gen/amd64.go19
-rw-r--r--sys/linux/gen/arm.go19
-rw-r--r--sys/linux/gen/arm64.go19
-rw-r--r--sys/linux/gen/ppc64le.go19
-rw-r--r--sys/linux/init.go6
-rw-r--r--tools/syz-trace2syz/proggen/call_selector.go5
15 files changed, 151 insertions, 11 deletions
diff --git a/executor/defs.h b/executor/defs.h
index 9cedad6cb..4480e20e2 100644
--- a/executor/defs.h
+++ b/executor/defs.h
@@ -70,7 +70,7 @@
#if GOARCH_386
#define GOARCH "386"
-#define SYZ_REVISION "eb22b8a389910e3ec878475738f280bd61b00a09"
+#define SYZ_REVISION "38f83eeb8eb860a70e47d58558925a433b2db80c"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -80,7 +80,7 @@
#if GOARCH_amd64
#define GOARCH "amd64"
-#define SYZ_REVISION "b025d70b7713cc48e9ab783fc35e2410b69a5736"
+#define SYZ_REVISION "35a61e3d9f82704660ae851088b5cab4dd788688"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -90,7 +90,7 @@
#if GOARCH_arm
#define GOARCH "arm"
-#define SYZ_REVISION "fdb9cb5b71481f79ff86d824721def50b72fafa5"
+#define SYZ_REVISION "aa728964114f9bdcdb61227af7a3592558e9a3ab"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -100,7 +100,7 @@
#if GOARCH_arm64
#define GOARCH "arm64"
-#define SYZ_REVISION "26a51558327902a8e8951bd6afdcdae046006802"
+#define SYZ_REVISION "2436d280e9b215f342b807b6e7d340e8de10d2d0"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -110,7 +110,7 @@
#if GOARCH_ppc64le
#define GOARCH "ppc64le"
-#define SYZ_REVISION "d118414cc10f2c07b6a9e1fae0e14db998375343"
+#define SYZ_REVISION "c87d0e37e231bd4df8bbd35f06200017b89567a1"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
diff --git a/executor/syscalls.h b/executor/syscalls.h
index a4cfbe18d..31859ff91 100644
--- a/executor/syscalls.h
+++ b/executor/syscalls.h
@@ -3932,6 +3932,7 @@ const call_t syscalls[] = {
{"read", 3},
{"read$FUSE", 3},
{"read$alg", 3},
+ {"read$char_usb", 3},
{"read$eventfd", 3},
{"read$hiddev", 3},
{"read$hidraw", 3},
@@ -4561,6 +4562,7 @@ const call_t syscalls[] = {
{"syz_open_dev$audion", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$binder", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$cec", 0, (syscall_t)syz_open_dev},
+ {"syz_open_dev$char_usb", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dmmidi", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dri", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dricontrol", 0, (syscall_t)syz_open_dev},
@@ -4790,6 +4792,7 @@ const call_t syscalls[] = {
{"write$cgroup_pid", 4},
{"write$cgroup_subtree", 4},
{"write$cgroup_type", 4},
+ {"write$char_usb", 4},
{"write$evdev", 4},
{"write$eventfd", 4},
{"write$hidraw", 4},
@@ -6691,6 +6694,7 @@ const call_t syscalls[] = {
{"read", 0},
{"read$FUSE", 0},
{"read$alg", 0},
+ {"read$char_usb", 0},
{"read$eventfd", 0},
{"read$hiddev", 0},
{"read$hidraw", 0},
@@ -7321,6 +7325,7 @@ const call_t syscalls[] = {
{"syz_open_dev$audion", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$binder", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$cec", 0, (syscall_t)syz_open_dev},
+ {"syz_open_dev$char_usb", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dmmidi", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dri", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dricontrol", 0, (syscall_t)syz_open_dev},
@@ -7550,6 +7555,7 @@ const call_t syscalls[] = {
{"write$cgroup_pid", 1},
{"write$cgroup_subtree", 1},
{"write$cgroup_type", 1},
+ {"write$char_usb", 1},
{"write$evdev", 1},
{"write$eventfd", 1},
{"write$hidraw", 1},
@@ -9405,6 +9411,7 @@ const call_t syscalls[] = {
{"read", 3},
{"read$FUSE", 3},
{"read$alg", 3},
+ {"read$char_usb", 3},
{"read$eventfd", 3},
{"read$hiddev", 3},
{"read$hidraw", 3},
@@ -10033,6 +10040,7 @@ const call_t syscalls[] = {
{"syz_open_dev$audion", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$binder", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$cec", 0, (syscall_t)syz_open_dev},
+ {"syz_open_dev$char_usb", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dmmidi", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dri", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dricontrol", 0, (syscall_t)syz_open_dev},
@@ -10260,6 +10268,7 @@ const call_t syscalls[] = {
{"write$cgroup_pid", 4},
{"write$cgroup_subtree", 4},
{"write$cgroup_type", 4},
+ {"write$char_usb", 4},
{"write$evdev", 4},
{"write$eventfd", 4},
{"write$hidraw", 4},
@@ -12100,6 +12109,7 @@ const call_t syscalls[] = {
{"read", 63},
{"read$FUSE", 63},
{"read$alg", 63},
+ {"read$char_usb", 63},
{"read$eventfd", 63},
{"read$hiddev", 63},
{"read$hidraw", 63},
@@ -12719,6 +12729,7 @@ const call_t syscalls[] = {
{"syz_open_dev$audion", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$binder", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$cec", 0, (syscall_t)syz_open_dev},
+ {"syz_open_dev$char_usb", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dmmidi", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dri", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dricontrol", 0, (syscall_t)syz_open_dev},
@@ -12942,6 +12953,7 @@ const call_t syscalls[] = {
{"write$cgroup_pid", 64},
{"write$cgroup_subtree", 64},
{"write$cgroup_type", 64},
+ {"write$char_usb", 64},
{"write$evdev", 64},
{"write$eventfd", 64},
{"write$hidraw", 64},
@@ -14796,6 +14808,7 @@ const call_t syscalls[] = {
{"read", 3},
{"read$FUSE", 3},
{"read$alg", 3},
+ {"read$char_usb", 3},
{"read$eventfd", 3},
{"read$hiddev", 3},
{"read$hidraw", 3},
@@ -15423,6 +15436,7 @@ const call_t syscalls[] = {
{"syz_open_dev$audion", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$binder", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$cec", 0, (syscall_t)syz_open_dev},
+ {"syz_open_dev$char_usb", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dmmidi", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dri", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dricontrol", 0, (syscall_t)syz_open_dev},
@@ -15652,6 +15666,7 @@ const call_t syscalls[] = {
{"write$cgroup_pid", 4},
{"write$cgroup_subtree", 4},
{"write$cgroup_type", 4},
+ {"write$char_usb", 4},
{"write$evdev", 4},
{"write$eventfd", 4},
{"write$hidraw", 4},
diff --git a/sys/linux/dev_char_usb.txt b/sys/linux/dev_char_usb.txt
new file mode 100644
index 000000000..f75196b7e
--- /dev/null
+++ b/sys/linux/dev_char_usb.txt
@@ -0,0 +1,11 @@
+# Copyright 2019 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+include <include/linux/usb.h>
+
+resource fd_char_usb[fd]
+
+syz_open_dev$char_usb(dev const[0xc], major const[USB_MAJOR], minor intptr) fd_char_usb
+
+read$char_usb(fd fd_char_usb, buf buffer[out], count len[buf])
+write$char_usb(fd fd_char_usb, buf buffer[in], count len[buf])
diff --git a/sys/linux/dev_char_usb_386.const b/sys/linux/dev_char_usb_386.const
new file mode 100644
index 000000000..cdb26013d
--- /dev/null
+++ b/sys/linux/dev_char_usb_386.const
@@ -0,0 +1,4 @@
+# AUTOGENERATED FILE
+USB_MAJOR = 180
+__NR_read = 3
+__NR_write = 4
diff --git a/sys/linux/dev_char_usb_amd64.const b/sys/linux/dev_char_usb_amd64.const
new file mode 100644
index 000000000..cc03c76c0
--- /dev/null
+++ b/sys/linux/dev_char_usb_amd64.const
@@ -0,0 +1,4 @@
+# AUTOGENERATED FILE
+USB_MAJOR = 180
+__NR_read = 0
+__NR_write = 1
diff --git a/sys/linux/dev_char_usb_arm.const b/sys/linux/dev_char_usb_arm.const
new file mode 100644
index 000000000..cdb26013d
--- /dev/null
+++ b/sys/linux/dev_char_usb_arm.const
@@ -0,0 +1,4 @@
+# AUTOGENERATED FILE
+USB_MAJOR = 180
+__NR_read = 3
+__NR_write = 4
diff --git a/sys/linux/dev_char_usb_arm64.const b/sys/linux/dev_char_usb_arm64.const
new file mode 100644
index 000000000..aa7f809eb
--- /dev/null
+++ b/sys/linux/dev_char_usb_arm64.const
@@ -0,0 +1,4 @@
+# AUTOGENERATED FILE
+USB_MAJOR = 180
+__NR_read = 63
+__NR_write = 64
diff --git a/sys/linux/dev_char_usb_ppc64le.const b/sys/linux/dev_char_usb_ppc64le.const
new file mode 100644
index 000000000..cdb26013d
--- /dev/null
+++ b/sys/linux/dev_char_usb_ppc64le.const
@@ -0,0 +1,4 @@
+# AUTOGENERATED FILE
+USB_MAJOR = 180
+__NR_read = 3
+__NR_write = 4
diff --git a/sys/linux/gen/386.go b/sys/linux/gen/386.go
index 8ed776167..79d474cbc 100644
--- a/sys/linux/gen/386.go
+++ b/sys/linux/gen/386.go
@@ -40,6 +40,7 @@ var resources_386 = []*ResourceDesc{
{Name: "fd_cgroup_pid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_pid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_subtree", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_subtree"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_type", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_type"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_char_usb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_char_usb"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dir", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dir"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_dma_buf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dma_buf"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dmabuf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dmabuf"}, Values: []uint64{18446744073709551615}},
@@ -39241,6 +39242,11 @@ var syscalls_386 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 4}}, Path: []string{"buf"}},
}},
+ {NR: 3, Name: "read$char_usb", CallName: "read", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 4}}, Path: []string{"buf"}},
+ }},
{NR: 3, Name: "read$eventfd", CallName: "read", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_event", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "val", TypeSize: 4}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 1}}}},
@@ -43089,6 +43095,11 @@ var syscalls_386 = []*Syscall{
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "id", TypeSize: 4}}, ValuesPerProc: 4},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}, Val: 2},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_open_dev$char_usb", CallName: "syz_open_dev", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dev", TypeSize: 4}}, Val: 12},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "major", TypeSize: 4}}, Val: 180},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "minor", TypeSize: 4}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{Name: "syz_open_dev$dmmidi", CallName: "syz_open_dev", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 13}, Kind: 2, Values: []string{"/dev/dmmidi#\x00"}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "id", TypeSize: 4}}},
@@ -44215,6 +44226,11 @@ var syscalls_386 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 9}, Kind: 2, Values: []string{"threaded\x00"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"buf"}},
}},
+ {NR: 4, Name: "write$char_usb", CallName: "write", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 4}}, Path: []string{"buf"}},
+ }},
{NR: 4, Name: "write$evdev", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_evdev", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "data", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "input_event"}}}},
@@ -50397,6 +50413,7 @@ var consts_386 = []ConstValue{
{Name: "USB_LOW_SPEED_OPERATION", Value: 1},
{Name: "USB_LPM_SUPPORT", Value: 2},
{Name: "USB_LTM_SUPPORT", Value: 2},
+ {Name: "USB_MAJOR", Value: 180},
{Name: "USB_PORT_STAT_CONNECTION", Value: 1},
{Name: "USB_PORT_STAT_C_BH_RESET", Value: 32},
{Name: "USB_PORT_STAT_C_CONFIG_ERROR", Value: 128},
@@ -52223,4 +52240,4 @@ var consts_386 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_386 = "eb22b8a389910e3ec878475738f280bd61b00a09"
+const revision_386 = "38f83eeb8eb860a70e47d58558925a433b2db80c"
diff --git a/sys/linux/gen/amd64.go b/sys/linux/gen/amd64.go
index 8db199c8e..22d03a381 100644
--- a/sys/linux/gen/amd64.go
+++ b/sys/linux/gen/amd64.go
@@ -40,6 +40,7 @@ var resources_amd64 = []*ResourceDesc{
{Name: "fd_cgroup_pid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_pid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_subtree", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_subtree"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_type", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_type"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_char_usb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_char_usb"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dir", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dir"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_dma_buf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dma_buf"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dmabuf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dmabuf"}, Values: []uint64{18446744073709551615}},
@@ -39758,6 +39759,11 @@ var syscalls_amd64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Path: []string{"buf"}},
}},
+ {Name: "read$char_usb", CallName: "read", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 8}}, Path: []string{"buf"}},
+ }},
{Name: "read$eventfd", CallName: "read", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_event", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "val", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 1}}}},
@@ -43611,6 +43617,11 @@ var syscalls_amd64 = []*Syscall{
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "id", TypeSize: 8}}, ValuesPerProc: 4},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 8}}, Val: 2},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_open_dev$char_usb", CallName: "syz_open_dev", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dev", TypeSize: 8}}, Val: 12},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "major", TypeSize: 8}}, Val: 180},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "minor", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{Name: "syz_open_dev$dmmidi", CallName: "syz_open_dev", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 13}, Kind: 2, Values: []string{"/dev/dmmidi#\x00"}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "id", TypeSize: 8}}},
@@ -44737,6 +44748,11 @@ var syscalls_amd64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 9}, Kind: 2, Values: []string{"threaded\x00"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 8}}, BitSize: 8, Path: []string{"buf"}},
}},
+ {NR: 1, Name: "write$char_usb", CallName: "write", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 8}}, Path: []string{"buf"}},
+ }},
{NR: 1, Name: "write$evdev", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_evdev", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "data", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "input_event"}}}},
@@ -50933,6 +50949,7 @@ var consts_amd64 = []ConstValue{
{Name: "USB_LOW_SPEED_OPERATION", Value: 1},
{Name: "USB_LPM_SUPPORT", Value: 2},
{Name: "USB_LTM_SUPPORT", Value: 2},
+ {Name: "USB_MAJOR", Value: 180},
{Name: "USB_PORT_STAT_CONNECTION", Value: 1},
{Name: "USB_PORT_STAT_C_BH_RESET", Value: 32},
{Name: "USB_PORT_STAT_C_CONFIG_ERROR", Value: 128},
@@ -52760,4 +52777,4 @@ var consts_amd64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_amd64 = "b025d70b7713cc48e9ab783fc35e2410b69a5736"
+const revision_amd64 = "35a61e3d9f82704660ae851088b5cab4dd788688"
diff --git a/sys/linux/gen/arm.go b/sys/linux/gen/arm.go
index 929a5af9d..2caa90b01 100644
--- a/sys/linux/gen/arm.go
+++ b/sys/linux/gen/arm.go
@@ -40,6 +40,7 @@ var resources_arm = []*ResourceDesc{
{Name: "fd_cgroup_pid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_pid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_subtree", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_subtree"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_type", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_type"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_char_usb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_char_usb"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dir", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dir"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_dma_buf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dma_buf"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dmabuf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dmabuf"}, Values: []uint64{18446744073709551615}},
@@ -38902,6 +38903,11 @@ var syscalls_arm = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 4}}, Path: []string{"buf"}},
}},
+ {NR: 3, Name: "read$char_usb", CallName: "read", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 4}}, Path: []string{"buf"}},
+ }},
{NR: 3, Name: "read$eventfd", CallName: "read", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_event", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "val", TypeSize: 4}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 1}}}},
@@ -42745,6 +42751,11 @@ var syscalls_arm = []*Syscall{
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "id", TypeSize: 4}}, ValuesPerProc: 4},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}, Val: 2},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_open_dev$char_usb", CallName: "syz_open_dev", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dev", TypeSize: 4}}, Val: 12},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "major", TypeSize: 4}}, Val: 180},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "minor", TypeSize: 4}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{Name: "syz_open_dev$dmmidi", CallName: "syz_open_dev", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 13}, Kind: 2, Values: []string{"/dev/dmmidi#\x00"}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "id", TypeSize: 4}}},
@@ -43864,6 +43875,11 @@ var syscalls_arm = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 9}, Kind: 2, Values: []string{"threaded\x00"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"buf"}},
}},
+ {NR: 4, Name: "write$char_usb", CallName: "write", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 4}}, Path: []string{"buf"}},
+ }},
{NR: 4, Name: "write$evdev", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_evdev", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "data", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "input_event"}}}},
@@ -49984,6 +50000,7 @@ var consts_arm = []ConstValue{
{Name: "USB_LOW_SPEED_OPERATION", Value: 1},
{Name: "USB_LPM_SUPPORT", Value: 2},
{Name: "USB_LTM_SUPPORT", Value: 2},
+ {Name: "USB_MAJOR", Value: 180},
{Name: "USB_PORT_STAT_CONNECTION", Value: 1},
{Name: "USB_PORT_STAT_C_BH_RESET", Value: 32},
{Name: "USB_PORT_STAT_C_CONFIG_ERROR", Value: 128},
@@ -51800,4 +51817,4 @@ var consts_arm = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_arm = "fdb9cb5b71481f79ff86d824721def50b72fafa5"
+const revision_arm = "aa728964114f9bdcdb61227af7a3592558e9a3ab"
diff --git a/sys/linux/gen/arm64.go b/sys/linux/gen/arm64.go
index 9796420cb..66a717719 100644
--- a/sys/linux/gen/arm64.go
+++ b/sys/linux/gen/arm64.go
@@ -40,6 +40,7 @@ var resources_arm64 = []*ResourceDesc{
{Name: "fd_cgroup_pid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_pid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_subtree", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_subtree"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_type", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_type"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_char_usb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_char_usb"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dir", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dir"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_dma_buf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dma_buf"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dmabuf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dmabuf"}, Values: []uint64{18446744073709551615}},
@@ -39281,6 +39282,11 @@ var syscalls_arm64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Path: []string{"buf"}},
}},
+ {NR: 63, Name: "read$char_usb", CallName: "read", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 8}}, Path: []string{"buf"}},
+ }},
{NR: 63, Name: "read$eventfd", CallName: "read", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_event", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "val", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 1}}}},
@@ -43087,6 +43093,11 @@ var syscalls_arm64 = []*Syscall{
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "id", TypeSize: 8}}, ValuesPerProc: 4},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 8}}, Val: 2},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_open_dev$char_usb", CallName: "syz_open_dev", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dev", TypeSize: 8}}, Val: 12},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "major", TypeSize: 8}}, Val: 180},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "minor", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{Name: "syz_open_dev$dmmidi", CallName: "syz_open_dev", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 13}, Kind: 2, Values: []string{"/dev/dmmidi#\x00"}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "id", TypeSize: 8}}},
@@ -44192,6 +44203,11 @@ var syscalls_arm64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 9}, Kind: 2, Values: []string{"threaded\x00"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 8}}, BitSize: 8, Path: []string{"buf"}},
}},
+ {NR: 64, Name: "write$char_usb", CallName: "write", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 8}}, Path: []string{"buf"}},
+ }},
{NR: 64, Name: "write$evdev", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_evdev", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "data", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "input_event"}}}},
@@ -50326,6 +50342,7 @@ var consts_arm64 = []ConstValue{
{Name: "USB_LOW_SPEED_OPERATION", Value: 1},
{Name: "USB_LPM_SUPPORT", Value: 2},
{Name: "USB_LTM_SUPPORT", Value: 2},
+ {Name: "USB_MAJOR", Value: 180},
{Name: "USB_PORT_STAT_CONNECTION", Value: 1},
{Name: "USB_PORT_STAT_C_BH_RESET", Value: 32},
{Name: "USB_PORT_STAT_C_CONFIG_ERROR", Value: 128},
@@ -52112,4 +52129,4 @@ var consts_arm64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_arm64 = "26a51558327902a8e8951bd6afdcdae046006802"
+const revision_arm64 = "2436d280e9b215f342b807b6e7d340e8de10d2d0"
diff --git a/sys/linux/gen/ppc64le.go b/sys/linux/gen/ppc64le.go
index 7788c1eee..be0386cdd 100644
--- a/sys/linux/gen/ppc64le.go
+++ b/sys/linux/gen/ppc64le.go
@@ -40,6 +40,7 @@ var resources_ppc64le = []*ResourceDesc{
{Name: "fd_cgroup_pid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_pid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_subtree", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_subtree"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_type", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_type"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_char_usb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_char_usb"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dir", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dir"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_dma_buf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dma_buf"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dmabuf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dmabuf"}, Values: []uint64{18446744073709551615}},
@@ -39221,6 +39222,11 @@ var syscalls_ppc64le = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Path: []string{"buf"}},
}},
+ {NR: 3, Name: "read$char_usb", CallName: "read", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 8}}, Path: []string{"buf"}},
+ }},
{NR: 3, Name: "read$eventfd", CallName: "read", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_event", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "val", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 1}}}},
@@ -43060,6 +43066,11 @@ var syscalls_ppc64le = []*Syscall{
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "id", TypeSize: 8}}, ValuesPerProc: 4},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 8}}, Val: 2},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_open_dev$char_usb", CallName: "syz_open_dev", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dev", TypeSize: 8}}, Val: 12},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "major", TypeSize: 8}}, Val: 180},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "minor", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{Name: "syz_open_dev$dmmidi", CallName: "syz_open_dev", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 13}, Kind: 2, Values: []string{"/dev/dmmidi#\x00"}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "id", TypeSize: 8}}},
@@ -44186,6 +44197,11 @@ var syscalls_ppc64le = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 9}, Kind: 2, Values: []string{"threaded\x00"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 8}}, BitSize: 8, Path: []string{"buf"}},
}},
+ {NR: 4, Name: "write$char_usb", CallName: "write", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 8}}, Path: []string{"buf"}},
+ }},
{NR: 4, Name: "write$evdev", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_evdev", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "data", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "input_event"}}}},
@@ -50299,6 +50315,7 @@ var consts_ppc64le = []ConstValue{
{Name: "USB_LOW_SPEED_OPERATION", Value: 1},
{Name: "USB_LPM_SUPPORT", Value: 2},
{Name: "USB_LTM_SUPPORT", Value: 2},
+ {Name: "USB_MAJOR", Value: 180},
{Name: "USB_PORT_STAT_CONNECTION", Value: 1},
{Name: "USB_PORT_STAT_C_BH_RESET", Value: 32},
{Name: "USB_PORT_STAT_C_CONFIG_ERROR", Value: 128},
@@ -52077,4 +52094,4 @@ var consts_ppc64le = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_ppc64le = "d118414cc10f2c07b6a9e1fae0e14db998375343"
+const revision_ppc64le = "c87d0e37e231bd4df8bbd35f06200017b89567a1"
diff --git a/sys/linux/init.go b/sys/linux/init.go
index e24e7eb77..5ae9f001d 100644
--- a/sys/linux/init.go
+++ b/sys/linux/init.go
@@ -41,6 +41,7 @@ func InitTarget(target *prog.Target) {
AF_AX25: target.GetConst("AF_AX25"),
AF_NETROM: target.GetConst("AF_NETROM"),
AF_ROSE: target.GetConst("AF_ROSE"),
+ USB_MAJOR: target.GetConst("USB_MAJOR"),
// These are not present on all arches.
ARCH_SET_FS: target.ConstMap["ARCH_SET_FS"],
ARCH_SET_GS: target.ConstMap["ARCH_SET_GS"],
@@ -138,6 +139,7 @@ type arch struct {
AF_AX25 uint64
AF_NETROM uint64
AF_ROSE uint64
+ USB_MAJOR uint64
}
func (arch *arch) sanitizeCall(c *prog.Call) {
@@ -206,6 +208,10 @@ func (arch *arch) sanitizeCall(c *prog.Call) {
switch c.Meta.Name {
case "setsockopt$EBT_SO_SET_ENTRIES":
arch.sanitizeEbtables(c)
+ case "syz_open_dev$char_usb":
+ // Don't allow opening various char and block devices.
+ c.Args[0].(*prog.ConstArg).Val = 0xc
+ c.Args[1].(*prog.ConstArg).Val = arch.USB_MAJOR
}
}
diff --git a/tools/syz-trace2syz/proggen/call_selector.go b/tools/syz-trace2syz/proggen/call_selector.go
index 989cbe6bd..5ace0fd2a 100644
--- a/tools/syz-trace2syz/proggen/call_selector.go
+++ b/tools/syz-trace2syz/proggen/call_selector.go
@@ -137,8 +137,11 @@ func (cs *openCallSelector) Select(call *parser.Syscall) *prog.Syscall {
func (cs *openCallSelector) matchOpen(meta *prog.Syscall, call *parser.Syscall) (bool, int) {
straceFileArg := call.Args[openDiscriminatorArgs[call.CallName]]
- syzFileArg := meta.Args[openDiscriminatorArgs[meta.CallName]]
straceBuf := straceFileArg.(*parser.BufferType).Val
+ syzFileArg := meta.Args[openDiscriminatorArgs[meta.CallName]]
+ if _, ok := syzFileArg.(*prog.PtrType); !ok {
+ return false, -1
+ }
syzBuf := syzFileArg.(*prog.PtrType).Type.(*prog.BufferType)
if syzBuf.Kind != prog.BufferString {
return false, -1