diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-01-16 13:43:44 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-01-16 13:43:44 +0100 |
| commit | a84f016776b7a275d1a30e66b5b97f649b4456da (patch) | |
| tree | 1fa3e701bc1b394868e85193188a55ef29e16ff2 /sys/linux | |
| parent | b48312c59da652063357f51bf2a84b14f2c58423 (diff) | |
sys/linux: don't touch mknod$loop during sanitization
mknod$loop contains proc type as dev number.
Current sanitization code truncates 64-bit -1 to 32-bits
which later causes validation failure.
Don't do that, it's unnecessary for proc type.
Diffstat (limited to 'sys/linux')
| -rw-r--r-- | sys/linux/init.go | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/linux/init.go b/sys/linux/init.go index dc92f8f95..2885ee422 100644 --- a/sys/linux/init.go +++ b/sys/linux/init.go @@ -167,6 +167,9 @@ func (arch *arch) sanitizeCall(c *prog.Call) { if c.Meta.CallName == "mknodat" { pos = 2 } + if _, ok := c.Args[pos+1].Type().(*prog.ProcType); ok { + return + } mode := c.Args[pos].(*prog.ConstArg) dev := c.Args[pos+1].(*prog.ConstArg) dev.Val = uint64(uint32(dev.Val)) |
