|
@@ -1993,7 +1993,7 @@ static int unix_stream_recvmsg(struct kiocb *iocb, struct socket *sock,
|
|
|
if ((UNIXCB(skb).pid != siocb->scm->pid) ||
|
|
if ((UNIXCB(skb).pid != siocb->scm->pid) ||
|
|
|
(UNIXCB(skb).cred != siocb->scm->cred))
|
|
(UNIXCB(skb).cred != siocb->scm->cred))
|
|
|
break;
|
|
break;
|
|
|
- } else {
|
|
|
|
|
|
|
+ } else if (test_bit(SOCK_PASSCRED, &sock->flags)) {
|
|
|
/* Copy credentials */
|
|
/* Copy credentials */
|
|
|
scm_set_cred(siocb->scm, UNIXCB(skb).pid, UNIXCB(skb).cred);
|
|
scm_set_cred(siocb->scm, UNIXCB(skb).pid, UNIXCB(skb).cred);
|
|
|
check_creds = 1;
|
|
check_creds = 1;
|