HomeFreeBSD

The vm_mmap_cdev() explicitely converts absence of both MAP_SHARED and

Description

The vm_mmap_cdev() explicitely converts absence of both MAP_SHARED and
MAP_PRIVATE flags to MAP_SHARED. Apparently, some code in tree, in
particular, libgeom, relied on this behaviour, see r271721. For
regular file types, the absence of the flags is interpreted as
MAP_PRIVATE, and libc nlist used this (fixed in r271723).

Allow the implicit flags for legacy binaries. Bump __FreeBSD_version
to get the ABI note on new binaries to check for in mmap code.

Remove the test for presence of one of the MAP_ANON, MAP_SHARED or
MAP_PRIVATE flags before fget_mmap(). For MAP_ANON, we already verify
that passed fd == -1. For fd != -1, test after fget_mmap() (for newer
binaries) covers the case.

Reported by: bdrewery, pho
Reviewed by: jhb
Sponsored by: The FreeBSD Foundation

Details

Provenance
kibAuthored on
Reviewer
jhb
Parents
rS271723: Explicitly set MAP_PRIVATE to avoid [EINVAL] after r271635.
Branches
Unknown
Tags
Unknown

Event Timeline