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: I020748ac01bb12ed421be4ee20ab8d922c3399fe
Signed-off-by: Zbigniew Jasinski <z.jasinski@samsung.com>
[Backport from mainline to 3.10]
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
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);
rc = smk_bu_note("UDS connect", skp, okp->smk_known,
MAY_WRITE, rc);
if (rc == 0) {
+ okp = osp->smk_out;
+ skp = ssp->smk_in;
rc = smk_access(okp, skp->smk_known, MAY_WRITE, NULL);
rc = smk_bu_note("UDS connect", okp, skp->smk_known,
MAY_WRITE, rc);