aboutsummaryrefslogtreecommitdiffstats
path: root/tools/syz-trace2syz
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 /tools/syz-trace2syz
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.
Diffstat (limited to 'tools/syz-trace2syz')
-rw-r--r--tools/syz-trace2syz/proggen/call_selector.go5
1 files changed, 4 insertions, 1 deletions
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