diff options
| author | Zbigniew Jasinski <z.jasinski@samsung.com> | 2014-12-29 09:34:58 -0500 |
|---|---|---|
| committer | Casey Schaufler <casey@schaufler-ca.com> | 2015-01-19 13:00:05 -0500 |
| commit | 96be7b5424948ae39d29d5149eaec0bd6edd7404 (patch) | |
| tree | c467ec4b6531e2ac3985e0aefa0bc5471e9cfc2e | |
| parent | 1d8c2326a4a2a4d942f9165b5702fe6f869ccf48 (diff) | |
smack: Fix a bidirectional UDS connect check typo
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.
Signed-off-by: Zbigniew Jasinski <z.jasinski@samsung.com>
| -rw-r--r-- | security/smack/smack_lsm.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c index 2160e88a2e4e..654345de62e7 100644 --- a/security/smack/smack_lsm.c +++ b/security/smack/smack_lsm.c | |||
| @@ -3312,7 +3312,7 @@ static int smack_unix_stream_connect(struct sock *sock, | |||
| 3312 | 3312 | ||
| 3313 | if (!smack_privileged(CAP_MAC_OVERRIDE)) { | 3313 | if (!smack_privileged(CAP_MAC_OVERRIDE)) { |
| 3314 | skp = ssp->smk_out; | 3314 | skp = ssp->smk_out; |
| 3315 | okp = osp->smk_out; | 3315 | okp = osp->smk_in; |
| 3316 | #ifdef CONFIG_AUDIT | 3316 | #ifdef CONFIG_AUDIT |
| 3317 | smk_ad_init_net(&ad, __func__, LSM_AUDIT_DATA_NET, &net); | 3317 | smk_ad_init_net(&ad, __func__, LSM_AUDIT_DATA_NET, &net); |
| 3318 | smk_ad_setfield_u_net_sk(&ad, other); | 3318 | smk_ad_setfield_u_net_sk(&ad, other); |
| @@ -3320,6 +3320,8 @@ static int smack_unix_stream_connect(struct sock *sock, | |||
| 3320 | rc = smk_access(skp, okp, MAY_WRITE, &ad); | 3320 | rc = smk_access(skp, okp, MAY_WRITE, &ad); |
| 3321 | rc = smk_bu_note("UDS connect", skp, okp, MAY_WRITE, rc); | 3321 | rc = smk_bu_note("UDS connect", skp, okp, MAY_WRITE, rc); |
| 3322 | if (rc == 0) { | 3322 | if (rc == 0) { |
| 3323 | okp = osp->smk_out; | ||
| 3324 | skp = ssp->smk_in; | ||
| 3323 | rc = smk_access(okp, skp, MAY_WRITE, NULL); | 3325 | rc = smk_access(okp, skp, MAY_WRITE, NULL); |
| 3324 | rc = smk_bu_note("UDS connect", okp, skp, | 3326 | rc = smk_bu_note("UDS connect", okp, skp, |
| 3325 | MAY_WRITE, rc); | 3327 | MAY_WRITE, rc); |
