* [PATCH] Smack: Provide information for UDS getsockopt(SO_PEERCRED)
@ 2011-09-26 21:43 Casey Schaufler
2011-09-30 2:18 ` Casey Schaufler
0 siblings, 1 reply; 2+ messages in thread
From: Casey Schaufler @ 2011-09-26 21:43 UTC (permalink / raw)
To: LKLM, LSM, Casey Schaufler
This patch is targeted for the smack-next tree.
This patch takes advantage of the recent changes for performance
and points the packet labels on UDS connect at the output label of
the far side. This makes getsockopt(...SO_PEERCRED...) function
properly. Without this change the getsockopt does not provide any
information.
Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
---
security/smack/smack_lsm.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
index 2e71c3f..7d29351 100644
--- a/security/smack/smack_lsm.c
+++ b/security/smack/smack_lsm.c
@@ -2767,6 +2767,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;
@@ -2776,6 +2777,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;
}
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH] Smack: Provide information for UDS getsockopt(SO_PEERCRED)
2011-09-26 21:43 [PATCH] Smack: Provide information for UDS getsockopt(SO_PEERCRED) Casey Schaufler
@ 2011-09-30 2:18 ` Casey Schaufler
0 siblings, 0 replies; 2+ messages in thread
From: Casey Schaufler @ 2011-09-30 2:18 UTC (permalink / raw)
To: Casey Schaufler; +Cc: LKLM, LSM
On 9/26/2011 2:43 PM, Casey Schaufler wrote:
>
> This patch is targeted for the smack-next tree.
>
> This patch takes advantage of the recent changes for performance
> and points the packet labels on UDS connect at the output label of
> the far side. This makes getsockopt(...SO_PEERCRED...) function
> properly. Without this change the getsockopt does not provide any
> information.
>
> Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
Applied to git://gitorious.org/smack-next/kernel.git
> ---
>
> security/smack/smack_lsm.c | 9 +++++++++
> 1 files changed, 9 insertions(+), 0 deletions(-)
>
> diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
> index 2e71c3f..7d29351 100644
> --- a/security/smack/smack_lsm.c
> +++ b/security/smack/smack_lsm.c
> @@ -2767,6 +2767,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;
>
> @@ -2776,6 +2777,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;
> }
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-09-30 2:18 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-26 21:43 [PATCH] Smack: Provide information for UDS getsockopt(SO_PEERCRED) Casey Schaufler
2011-09-30 2:18 ` Casey Schaufler
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox