aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/host/syscalls_linux.go
diff options
context:
space:
mode:
authorDenis Efremov <efremov@linux.com>2021-09-18 18:53:11 +0300
committerDmitry Vyukov <dvyukov@google.com>2021-09-20 09:38:10 +0200
commit3d9c9a2ac29573a117cde8ace07d0749eeda991b (patch)
treeff488dd751a98e5a8e4b2a2a3069b385ef012472 /pkg/host/syscalls_linux.go
parent70b76c1d627711cc3ef109af16d6cb7429a61fe3 (diff)
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 <efremov@linux.com>
Diffstat (limited to 'pkg/host/syscalls_linux.go')
-rw-r--r--pkg/host/syscalls_linux.go2
1 files changed, 1 insertions, 1 deletions
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 {