diff --git a/sys/security/audit/audit_bsm.c b/sys/security/audit/audit_bsm.c --- a/sys/security/audit/audit_bsm.c +++ b/sys/security/audit/audit_bsm.c @@ -545,6 +545,11 @@ kau_write(rec, tok); UPATH1_TOKENS; } + if (ARG_IS_VALID(kar, ARG_SADDRINET6)) { + tok = au_to_sock_inet128((struct sockaddr_in6 *) + &ar->ar_arg_sockaddr); + kau_write(rec, tok); + } break; case AUE_BIND: @@ -574,7 +579,11 @@ kau_write(rec, tok); UPATH1_TOKENS; } - /* XXX Need to handle ARG_SADDRINET6 */ + if (ARG_IS_VALID(kar, ARG_SADDRINET6)) { + tok = au_to_sock_inet128((struct sockaddr_in6 *) + &ar->ar_arg_sockaddr); + kau_write(rec, tok); + } break; case AUE_BINDAT: @@ -605,7 +614,11 @@ kau_write(rec, tok); UPATH1_TOKENS; } - /* XXX Need to handle ARG_SADDRINET6 */ + if (ARG_IS_VALID(kar, ARG_SADDRINET6)) { + tok = au_to_sock_inet128((struct sockaddr_in6 *) + &ar->ar_arg_sockaddr); + kau_write(rec, tok); + } break; case AUE_SOCKET: diff --git a/sys/security/audit/bsm_token.c b/sys/security/audit/bsm_token.c --- a/sys/security/audit/bsm_token.c +++ b/sys/security/audit/bsm_token.c @@ -1068,7 +1068,7 @@ ADD_U_CHAR(dptr, 0); ADD_U_CHAR(dptr, so->sin6_family); - ADD_U_INT16(dptr, so->sin6_port); + ADD_MEM(dptr, &so->sin6_port, sizeof(uint16_t)); ADD_MEM(dptr, &so->sin6_addr, 4 * sizeof(uint32_t)); return (t);