Since introduction of MAP_SHARED_VALIDATE, in case flags contain both MAP_PRIVATE and MAP_SHARED, mmap() doesn't fail with EINVAL, it succeeds. The reason for that is that MAP_SHARED_VALIDATE is in fact equal to MAP_PRIVATE | MAP_SHARED. This is intended behavior, see: https://lwn.net/Articles/758594/ https://lwn.net/Articles/758598/ Signed-off-by: Nikola Forró <nforro@xxxxxxxxxx> --- man2/mmap.2 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/man2/mmap.2 b/man2/mmap.2 index cea0bd372..b41e8b9ca 100644 --- a/man2/mmap.2 +++ b/man2/mmap.2 @@ -565,11 +565,11 @@ was 0. .TP .B EINVAL .I flags -contained neither -.B MAP_PRIVATE +contained none of +.BR MAP_PRIVATE , +.B MAP_SHARED or -.BR MAP_SHARED , -or contained both of these values. +.BR MAP_SHARED_VALIDATE . .TP .B ENFILE .\" This is for shared anonymous segments -- 2.21.0