fix mremap memory synchronization and use of variadic argument
authorRich Felker <dalias@aerifal.cx>
Mon, 2 Nov 2015 21:37:51 +0000 (16:37 -0500)
committerRich Felker <dalias@aerifal.cx>
Mon, 2 Nov 2015 21:37:51 +0000 (16:37 -0500)
commitfda365a53074f97f3213caefe70ea13297acecb2
tree2506ac8bfc363f5671a2be0c16a0a69c23167fdf
parentf9ecb6bfa1dc9f93a10dad97a158e6b8334c586c
fix mremap memory synchronization and use of variadic argument

since mremap with the MREMAP_FIXED flag is an operation that unmaps
existing mappings, it needs to use the vm lock mechanism to ensure
that any in-progress synchronization operations using vm identities
from before the call have finished.

also, the variadic argument was erroneously being read even if the
MREMAP_FIXED flag was not passed. in practice this didn't break
anything, but it's UB and in theory LTO could turn it into a hard
error.
src/mman/mremap.c