2014-04-04 08:25:04

by Andrei Vagin

[permalink] [raw]
Subject: [PATCH] maps.2: fd for a file mapping must be opened for reading

Here is no difference between MAP_SHARED and MAP_PRIVATE.

do_mmap_pgoff()
switch (flags & MAP_TYPE) {
case MAP_SHARED:
...
/* fall through */
case MAP_PRIVATE:
if (!(file->f_mode & FMODE_READ))
return -EACCES;

Signed-off-by: Andrey Vagin <[email protected]>
---
man2/mmap.2 | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/man2/mmap.2 b/man2/mmap.2
index c0fd321..b469f84 100644
--- a/man2/mmap.2
+++ b/man2/mmap.2
@@ -393,9 +393,7 @@ is set (probably to
.TP
.B EACCES
A file descriptor refers to a non-regular file.
-Or
-.B MAP_PRIVATE
-was requested, but
+Or a file mapping was requested, but
.I fd
is not open for reading.
Or
--
1.8.5.3


Subject: Re: [PATCH] maps.2: fd for a file mapping must be opened for reading

On 04/04/2014 10:24 AM, Andrey Vagin wrote:
> Here is no difference between MAP_SHARED and MAP_PRIVATE.

Thanks, Andrey. That man page text has been there for a very long time,
but but does not seem to correspond to the truth in any kernel version
going back even to Linux 1.0. Patch applied.

Cheers,

Michael


> do_mmap_pgoff()
> switch (flags & MAP_TYPE) {
> case MAP_SHARED:
> ...
> /* fall through */
> case MAP_PRIVATE:
> if (!(file->f_mode & FMODE_READ))
> return -EACCES;
>
> Signed-off-by: Andrey Vagin <[email protected]>
> ---
> man2/mmap.2 | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/man2/mmap.2 b/man2/mmap.2
> index c0fd321..b469f84 100644
> --- a/man2/mmap.2
> +++ b/man2/mmap.2
> @@ -393,9 +393,7 @@ is set (probably to
> .TP
> .B EACCES
> A file descriptor refers to a non-regular file.
> -Or
> -.B MAP_PRIVATE
> -was requested, but
> +Or a file mapping was requested, but
> .I fd
> is not open for reading.
> Or
>


--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/