aboutsummaryrefslogtreecommitdiff
path: root/sys/compat/linux/linux_mmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/compat/linux/linux_mmap.c')
-rw-r--r--sys/compat/linux/linux_mmap.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/compat/linux/linux_mmap.c b/sys/compat/linux/linux_mmap.c
index a8e790a29da4..9fecb6ebb2ad 100644
--- a/sys/compat/linux/linux_mmap.c
+++ b/sys/compat/linux/linux_mmap.c
@@ -63,6 +63,10 @@ static int
linux_mmap_check_fp(struct file *fp, int flags, int prot, int maxprot)
{
+ /* Linux returns EBADF if mmap() is called on an O_PATH file descriptor */
+ if (fp->f_ops == &path_fileops)
+ return (EBADF);
+
/* Linux mmap() just fails for O_WRONLY files */
if ((fp->f_flag & FREAD) == 0)
return (EACCES);