From 3d9c9a2ac29573a117cde8ace07d0749eeda991b Mon Sep 17 00:00:00 2001 From: Denis Efremov Date: Sat, 18 Sep 2021 18:53:11 +0300 Subject: pkg/host: add O_NONBLOCK to isSupportedOpenFile Since commit 4f7e1d0f5e1c ("sys/linux: use openat for /dev/cdrom") changed syz_open_dev to openat syzkaller tries to open /dev/cdrom with r,w,rw flags. However, if there is no media in a cdrom device these attempts will fail resulting in: > disabling openat$sr: open(/dev/sr0) failed: no medium found Add O_RDONLY|O_NONBLOCK mode to successfully open cdrom devices with no media. Signed-off-by: Denis Efremov --- pkg/host/syscalls_linux.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'pkg/host/syscalls_linux.go') diff --git a/pkg/host/syscalls_linux.go b/pkg/host/syscalls_linux.go index 7764b063a..c69ccd82f 100644 --- a/pkg/host/syscalls_linux.go +++ b/pkg/host/syscalls_linux.go @@ -460,7 +460,7 @@ func isSupportedOpenFile(c *prog.Syscall, filenameArg int, modes []int) (bool, s return true, "" } if len(modes) == 0 { - modes = []int{syscall.O_RDONLY, syscall.O_WRONLY, syscall.O_RDWR} + modes = []int{syscall.O_RDONLY, syscall.O_WRONLY, syscall.O_RDWR, syscall.O_RDONLY | syscall.O_NONBLOCK} } var err error for _, mode := range modes { -- cgit mrf-deployment