From: Zbigniew Jasinski Date: Tue, 30 Dec 2014 06:37:15 +0000 (+0900) Subject: [PATCH] Fix a bidirectional UDS connect check X-Git-Tag: TizenStudio_2.0_p2.3~48 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8ae491dbc8264a93a0d3a50d211f16b4750a1e8d;p=sdk%2Femulator%2Femulator-kernel.git [PATCH] Fix a bidirectional UDS connect check The 54e70ec5eb090193b03e69d551fa6771a5a217c4 commit introduced a bidirectional check that should have checked for mutual WRITE access between two labels. Due to a typo subject's OUT label is checked with object's OUT. Should be OUT to IN. Change-Id: I99a51b2ed49404eea77ee0c01364d626933aaf00 Signed-off-by: Zbigniew Jasinski --- diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c index 28855d6f158f..a85bc4c30211 100644 --- a/security/smack/smack_lsm.c +++ b/security/smack/smack_lsm.c @@ -3087,14 +3087,17 @@ static int smack_unix_stream_connect(struct sock *sock, if (!smack_privileged(CAP_MAC_OVERRIDE)) { skp = ssp->smk_out; - okp = osp->smk_out; + okp = osp->smk_in; #ifdef CONFIG_AUDIT smk_ad_init_net(&ad, __func__, LSM_AUDIT_DATA_NET, &net); smk_ad_setfield_u_net_sk(&ad, other); #endif rc = smk_access(skp, okp->smk_known, MAY_WRITE, &ad); - if (rc == 0) - rc = smk_access(okp, okp->smk_known, MAY_WRITE, NULL); + if (rc == 0) { + okp = osp->smk_out; + skp = ssp->smk_in; + rc = smk_access(okp, skp->smk_known, MAY_WRITE, NULL); + } } /*