aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-01-16 13:43:44 +0100
committerDmitry Vyukov <dvyukov@google.com>2018-01-16 13:43:44 +0100
commita84f016776b7a275d1a30e66b5b97f649b4456da (patch)
tree1fa3e701bc1b394868e85193188a55ef29e16ff2 /sys/linux
parentb48312c59da652063357f51bf2a84b14f2c58423 (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.go3
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))