aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-08-09 13:50:49 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-08-09 16:05:46 +0200
commit922e8e27343704155b81f50ddd3316ec04c9d299 (patch)
treeee5f2640775e336d923912c3249bac797dd33e05 /sys/linux
parentacf31536e9e570b2a5ee11a7818c96e4d177c808 (diff)
executor: mount binfmt_mist
We forgot to mount binfmt_misc. Mount it. Add a test. Increase per-call timeout, otherwise last execve timesout. Fix csource waiting for call completion at the end of program.
Diffstat (limited to 'sys/linux')
-rw-r--r--sys/linux/test/binfmt16
1 files changed, 16 insertions, 0 deletions
diff --git a/sys/linux/test/binfmt b/sys/linux/test/binfmt
new file mode 100644
index 000000000..9ab905824
--- /dev/null
+++ b/sys/linux/test/binfmt
@@ -0,0 +1,16 @@
+# Tests for binfmt_misc.
+# Executor setups binfmt_misc with ./file0 interpreter for files with byte 0x01 at offset 0.
+
+execveat(0xffffffffffffff9c, &(0x7f0000000000)='./file1\x00', &(0x7f0000000100)=[0x0], &(0x7f0000000200)=[0x0], 0x0) # ENOENT
+r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='./file1\x00', 0x42, 0x1ff)
+close(r0)
+execveat(0xffffffffffffff9c, &(0x7f0000000000)='./file1\x00', &(0x7f0000000100)=[0x0], &(0x7f0000000200)=[0x0], 0x0) # ENOEXEC
+r1 = openat(0xffffffffffffff9c, &(0x7f0000000000)='./file1\x00', 0x2, 0x0)
+write(r1, &(0x7f0000000300)="01010101", 0x4)
+close(r1)
+execveat(0xffffffffffffff9c, &(0x7f0000000000)='./file1\x00', &(0x7f0000000100)=[0x0], &(0x7f0000000200)=[0x0], 0x0) # ENOENT
+r2 = openat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', 0x42, 0x0)
+close(r2)
+execveat(0xffffffffffffff9c, &(0x7f0000000000)='./file1\x00', &(0x7f0000000100)=[0x0], &(0x7f0000000200)=[0x0], 0x0) # EACCES
+fchmodat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', 0x1ff)
+execveat(0xffffffffffffff9c, &(0x7f0000000000)='./file1\x00', &(0x7f0000000100)=[0x0], &(0x7f0000000200)=[0x0], 0x0) # ENOEXEC