While testing FreeBSD Linux ABI emulation layer with
LTP I got two false positives on writev03 and writev04.
First, FreeBSD writev() will return EFAULT:
[EFAULT] Part of iov or data to be written to the file
points outside the process's allocated address space.
We need to provide Linux behaviour in our emulation layer.
However this problem went unnoticed until we fixed our
emulator mmap(2) to match exactly Linux behaviour.
We used to have PROT_READ silently added to every
mmap() call - this caused many "bad memory regions" to
be actually valid memory areas for LTP. Needless to say
this caused lots of testcases to fail, but this allowed
writev03 and writev04 to happily access whole iovec
memory and PASS.