minix/servers/inet
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
..
generic Remove redundant sha2 code from inet 2010-11-15 11:10:02 +00:00
buf.c Removed a whole herd of unused variables. 2010-01-14 13:53:12 +00:00
clock.c Removed a whole herd of unused variables. 2010-01-14 13:53:12 +00:00
const.h New inet with partial select implementation 2005-06-28 15:19:58 +00:00
inet.c move timers code to libsys 2010-07-09 12:58:18 +00:00
inet.h General cleanup: 2010-01-05 19:39:27 +00:00
inet_config.c This patch switches the MINIX3 ethernet driver stack from a port-based 2010-05-17 22:22:53 +00:00
inet_config.h This patch switches the MINIX3 ethernet driver stack from a port-based 2010-05-17 22:22:53 +00:00
Makefile Remove redundant sha2 code from inet 2010-11-15 11:10:02 +00:00
mnx_eth.c Server/driver protocols: no longer allow third-party copies. 2011-04-11 17:35:05 +00:00
mq.c New inet with partial select implementation 2005-06-28 15:19:58 +00:00
mq.h Initial revision 2005-04-21 14:53:53 +00:00
osdep_eth.h This patch switches the MINIX3 ethernet driver stack from a port-based 2010-05-17 22:22:53 +00:00
proto.h This patch switches the MINIX3 ethernet driver stack from a port-based 2010-05-17 22:22:53 +00:00
qp.c Fix a few compile time warnings 2010-07-02 12:41:19 +00:00
qp.h More stack for tcpd. 2006-07-13 13:19:48 +00:00
queryparam.c Convert drivers/ and servers/ over to bsdmake 2010-03-22 21:25:22 +00:00
queryparam.h <ansi.h> -> <minix/ansi.h> 2011-01-28 11:35:02 +00:00
sr.c Server/driver protocols: no longer allow third-party copies. 2011-04-11 17:35:05 +00:00
sr_int.h More use of endpoint_t. Other code cleanup. 2010-03-30 14:07:15 +00:00
version.c New inet with partial select implementation 2005-06-28 15:19:58 +00:00