minix/servers/vfs
David van Moolenbroek c51cd5fe91 Server/driver protocols: no longer allow third-party copies.
Before safecopies, the IO_ENDPT and DL_ENDPT message fields were needed
to know which actual process to copy data from/to, as that process may
not always be the caller. Now that we have full safecopy support, these
fields have become useless for that purpose: the owner of the grant is
*always* the caller. Allowing the caller to supply another endpoint is
in fact dangerous, because the callee may then end up using a grant
from a third party. One could call this a variant of the confused
deputy problem.

From now on, safecopy calls should always use the caller's endpoint as
grant owner. This fully obsoletes the DL_ENDPT field in the
inet/ethernet protocol. IO_ENDPT has other uses besides identifying the
grant owner though. This patch renames IO_ENDPT to USER_ENDPT, not only
because that is a more fitting name (it should never be used for I/O
after all), but also in order to intentionally break any old system
source code outside the base system. If this patch breaks your code,
fixing it is fairly simple:

- DL_ENDPT should be replaced with m_source;
- IO_ENDPT should be replaced with m_source when used for safecopies;
- IO_ENDPT should be replaced with USER_ENDPT for any other use, e.g.
  when setting REP_ENDPT, matching requests in CANCEL calls, getting
  DEV_SELECT flags, and retrieving of the real user process's endpoint
  in DEV_OPEN.

The changes in this patch are binary backward compatible.
2011-04-11 17:35:05 +00:00
..
const.h - Make sure there's space left in the vmnt table for another mount point. 2010-08-17 10:02:50 +00:00
device.c Server/driver protocols: no longer allow third-party copies. 2011-04-11 17:35:05 +00:00
dmap.c Remove the types Dev_t, _mnx_Gui, _mnx_Uid, and similar. 2010-04-13 10:58:41 +00:00
dmap.h Remove the types Dev_t, _mnx_Gui, _mnx_Uid, and similar. 2010-04-13 10:58:41 +00:00
exec.c libexec: return physaddr info from ELF headers 2011-04-07 12:22:36 +00:00
exec.h VFS/RS support for ELF 2010-12-10 09:27:56 +00:00
file.h Use of all NIL_* defines converted to NULL 2010-05-10 13:26:00 +00:00
filedes.c Server/driver protocols: no longer allow third-party copies. 2011-04-11 17:35:05 +00:00
fproc.h vfs - split fp_fd field into fd + callnr fields 2010-07-22 14:55:28 +00:00
fs.h <ansi.h> -> <minix/ansi.h> 2011-01-28 11:35:02 +00:00
fscall.c make getsysinfo() a system-land call 2010-09-14 21:50:05 +00:00
gcov.c decouple file system server start/termination from mount/umount 2010-11-23 19:34:56 +00:00
glo.h removed unneeded global var 2010-11-24 16:30:13 +00:00
link.c vfs: terminate string in rdlink_direct 2010-12-01 16:24:50 +00:00
lock.c Remove legacy MM, FS, and FS_PROC_NR macros 2010-06-08 13:58:01 +00:00
lock.h Use of all NIL_* defines converted to NULL 2010-05-10 13:26:00 +00:00
main.c VFS: bugfixes for handling block-special files: 2011-03-25 10:56:43 +00:00
Makefile VFS/RS support for ELF 2010-12-10 09:27:56 +00:00
misc.c decouple file system server start/termination from mount/umount 2010-11-23 19:34:56 +00:00
mount.c VFS: bugfixes for handling block-special files: 2011-03-25 10:56:43 +00:00
open.c Prepare VFS to support back calls from PFS. For security reasons and to support 2010-08-30 13:44:07 +00:00
param.h Driver mapping refactory. 2010-04-09 21:56:44 +00:00
path.c Server/driver protocols: no longer allow third-party copies. 2011-04-11 17:35:05 +00:00
pipe.c Server/driver protocols: no longer allow third-party copies. 2011-04-11 17:35:05 +00:00
protect.c Prepare VFS to support back calls from PFS. For security reasons and to support 2010-08-30 13:44:07 +00:00
proto.h Prepare VFS to support back calls from PFS. For security reasons and to support 2010-08-30 13:44:07 +00:00
read.c Prepare VFS to support back calls from PFS. For security reasons and to support 2010-08-30 13:44:07 +00:00
request.c decouple file system server start/termination from mount/umount 2010-11-23 19:34:56 +00:00
request.h - Fix dangling symlink regression 2010-01-21 09:32:15 +00:00
select.c Restart process after response from async driver on non-blocking select 2011-02-23 10:27:48 +00:00
select.h Asynchronous select implementation. 2008-02-22 15:46:59 +00:00
stadir.c Prepare VFS to support back calls from PFS. For security reasons and to support 2010-08-30 13:44:07 +00:00
table.c make getsysinfo() a system-land call 2010-09-14 21:50:05 +00:00
time.c Prepare VFS to support back calls from PFS. For security reasons and to support 2010-08-30 13:44:07 +00:00
utility.c Prepare VFS to support back calls from PFS. For security reasons and to support 2010-08-30 13:44:07 +00:00
vmnt.c Use of all NIL_* defines converted to NULL 2010-05-10 13:26:00 +00:00
vmnt.h Use of all NIL_* defines converted to NULL 2010-05-10 13:26:00 +00:00
vnode.c add NOASSERTS make flag that disables assert()s (NDEBUG=1). 2011-02-16 18:58:30 +00:00
vnode.h Use of all NIL_* defines converted to NULL 2010-05-10 13:26:00 +00:00
write.c Remove useless variables and the computations on them. 2010-02-19 10:00:32 +00:00