From 55cfa501cb2f6aaad6aef12398298b63cd7de9d9 Mon Sep 17 00:00:00 2001 From: Casey Schaufler Date: Mon, 26 Sep 2011 14:43:39 -0700 Subject: [PATCH] --- yaml --- r: 264564 b: refs/heads/master c: 975d5e55c2e78b755bd0b92b71db1c241c5a2665 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/security/smack/smack_lsm.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 35b1715a5135..34cc883cf565 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ce8a432197d9892689eb4896f690b9fe6b3de598 +refs/heads/master: 975d5e55c2e78b755bd0b92b71db1c241c5a2665 diff --git a/trunk/security/smack/smack_lsm.c b/trunk/security/smack/smack_lsm.c index 6a8226541327..dab8af17ef38 100644 --- a/trunk/security/smack/smack_lsm.c +++ b/trunk/security/smack/smack_lsm.c @@ -2773,6 +2773,7 @@ static int smack_unix_stream_connect(struct sock *sock, { struct socket_smack *ssp = sock->sk_security; struct socket_smack *osp = other->sk_security; + struct socket_smack *nsp = newsk->sk_security; struct smk_audit_info ad; int rc = 0; @@ -2782,6 +2783,14 @@ static int smack_unix_stream_connect(struct sock *sock, if (!capable(CAP_MAC_OVERRIDE)) rc = smk_access(ssp->smk_out, osp->smk_in, MAY_WRITE, &ad); + /* + * Cross reference the peer labels for SO_PEERSEC. + */ + if (rc == 0) { + nsp->smk_packet = ssp->smk_out; + ssp->smk_packet = osp->smk_out; + } + return rc; }