From: James Morris <jmorris@namei.org>
Date: Sun, 9 Jan 2011 22:46:24 +0000 (+1100)
Subject: Merge branch 'master' into next
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=d2e7ad19229f982fc1eb731827d82ceac90abfb3;p=GitHub%2FLineageOS%2FG12%2Fandroid_kernel_amlogic_linux-4.9.git

Merge branch 'master' into next

Conflicts:
	security/smack/smack_lsm.c

Verified and added fix by Stephen Rothwell <sfr@canb.auug.org.au>
Ok'd by Casey Schaufler <casey@schaufler-ca.com>

Signed-off-by: James Morris <jmorris@namei.org>
---

d2e7ad19229f982fc1eb731827d82ceac90abfb3
diff --cc security/smack/smack_lsm.c
index 05dc4da2e25f,ccb71a044a1a..533bf3255d7f
--- a/security/smack/smack_lsm.c
+++ b/security/smack/smack_lsm.c
@@@ -2534,21 -2415,17 +2534,21 @@@ static int smack_setprocattr(struct tas
   * Return 0 if a subject with the smack of sock could access
   * an object with the smack of other, otherwise an error code
   */
- static int smack_unix_stream_connect(struct socket *sock,
- 				     struct socket *other, struct sock *newsk)
+ static int smack_unix_stream_connect(struct sock *sock,
+ 				     struct sock *other, struct sock *newsk)
  {
- 	struct socket_smack *ssp = sock->sk->sk_security;
- 	struct socket_smack *osp = other->sk->sk_security;
 -	struct inode *sp = SOCK_INODE(sock->sk_socket);
 -	struct inode *op = SOCK_INODE(other->sk_socket);
++	struct socket_smack *ssp = sock->sk_security;
++	struct socket_smack *osp = other->sk_security;
  	struct smk_audit_info ad;
 +	int rc = 0;
  
  	smk_ad_init(&ad, __func__, LSM_AUDIT_DATA_NET);
- 	smk_ad_setfield_u_net_sk(&ad, other->sk);
+ 	smk_ad_setfield_u_net_sk(&ad, other);
 -	return smk_access(smk_of_inode(sp), smk_of_inode(op),
 -				 MAY_READWRITE, &ad);
 +
 +	if (!capable(CAP_MAC_OVERRIDE))
 +		rc = smk_access(ssp->smk_out, osp->smk_in, MAY_WRITE, &ad);
 +
 +	return rc;
  }
  
  /**