On Tuesday 20 March 2012 23:25:10 Christopher Yeoh wrote:
Note that the following bit is not strictly true:
"So if the counts are too big, or the vectors invalid, or the
addresses refer to regions that are inaccessible, none of the
previous vectors will be processed and an error will be returned
immediately."
Whilst the code does check that memory regions in the process calling
the system calls are accessible before any work is done, it does not
check the memory regions in the remote process until just before doing
the read/write. So in that case you can end up with a partial
read/write if one of the iovec elements for the remote process points
to an invalid memory region. No further read/writes will be attempted
after this point though.
yes, i missed the "check_access" logic in rw_copy_check_uvector()
-mike