]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Socket MAC labels so_label and so_peerlabel are now protected by
authorrwatson <rwatson@FreeBSD.org>
Sun, 13 Jun 2004 02:50:07 +0000 (02:50 +0000)
committerrwatson <rwatson@FreeBSD.org>
Sun, 13 Jun 2004 02:50:07 +0000 (02:50 +0000)
commitf1bc833e9552e6874a5343bfd4a0b2999a185b42
treeb82bb2c8445f7117f831d6287d086e05ebd1953e
parentb173c880aa20391adf396c098a510e93c583ec02
Socket MAC labels so_label and so_peerlabel are now protected by
SOCK_LOCK(so):

- Hold socket lock over calls to MAC entry points reading or
  manipulating socket labels.

- Assert socket lock in MAC entry point implementations.

- When externalizing the socket label, first make a thread-local
  copy while holding the socket lock, then release the socket lock
  to externalize to userspace.
16 files changed:
sys/compat/svr4/svr4_stream.c
sys/kern/kern_prot.c
sys/kern/sys_socket.c
sys/kern/uipc_sockbuf.c
sys/kern/uipc_socket2.c
sys/kern/uipc_syscalls.c
sys/kern/uipc_usrreq.c
sys/netatalk/ddp_input.c
sys/netatalk/ddp_output.c
sys/netinet/in_pcb.c
sys/netinet/ip_divert.c
sys/netinet/tcp_input.c
sys/netinet/tcp_reass.c
sys/netinet/tcp_syncache.c
sys/security/mac/mac_socket.c
sys/sys/socketvar.h