diff options
author | maxim <maxim@FreeBSD.org> | 2006-06-13 14:33:35 +0000 |
---|---|---|
committer | maxim <maxim@FreeBSD.org> | 2006-06-13 14:33:35 +0000 |
commit | 0cf435f0166917eec5064b5dafbccc3b2dbb0dca (patch) | |
tree | ec8960703a0411659c348210afac8d097376e705 /contrib/traceroute | |
parent | 033f8e47d2aba2ec3d03076f1b808cb3407eef2f (diff) | |
download | FreeBSD-src-0cf435f0166917eec5064b5dafbccc3b2dbb0dca.zip FreeBSD-src-0cf435f0166917eec5064b5dafbccc3b2dbb0dca.tar.gz |
o There are two methods to get a process credentials over the unix
sockets:
1) A sender sends SCM_CREDS message to a reciever, struct cmsgcred;
2) A reciever sets LOCAL_CREDS socket option and gets sender
credentials in control message, struct sockcred.
Both methods use the same control message type SCM_CREDS with the
same control message level SOL_SOCKET, so they are indistinguishable
for the receiver. A difference in struct cmsgcred and struct sockcred
layouts may lead to unwanted effects.
Now for sockets with LOCAL_CREDS option remove all previous linked
SCM_CREDS control messages and then add a control message with
struct sockcred so the process specifically asked for the peer
credentials by LOCAL_CREDS option always gets struct sockcred.
PR: kern/90800
Submitted by: Andrey Simonenko
Regres. tests: tools/regression/sockets/unix_cmsg/
MFC after: 1 month
Diffstat (limited to 'contrib/traceroute')
0 files changed, 0 insertions, 0 deletions