diff options
| -rw-r--r-- | include/net/scm.h | 2 | ||||
| -rw-r--r-- | net/unix/af_unix.c | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/include/net/scm.h b/include/net/scm.h index e41839d23dfa..732f80337ea0 100644 --- a/include/net/scm.h +++ b/include/net/scm.h @@ -39,7 +39,7 @@ static __inline__ int scm_send(struct socket *sock, struct msghdr *msg, memset(scm, 0, sizeof(*scm)); scm->creds.uid = current->uid; scm->creds.gid = current->gid; - scm->creds.pid = current->pid; + scm->creds.pid = current->tgid; if (msg->msg_controllen <= 0) return 0; return __scm_send(sock, msg, scm); diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 61ea1a9f2a2b..f71d6ee11910 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@ -448,7 +448,7 @@ static int unix_listen(struct socket *sock, int backlog) sk->sk_max_ack_backlog = backlog; sk->sk_state = TCP_LISTEN; /* set credentials so connect can copy them */ - sk->sk_peercred.pid = current->pid; + sk->sk_peercred.pid = current->tgid; sk->sk_peercred.uid = current->euid; sk->sk_peercred.gid = current->egid; err = 0; @@ -983,7 +983,7 @@ restart: unix_peer(newsk) = sk; newsk->sk_state = TCP_ESTABLISHED; newsk->sk_type = SOCK_STREAM; - newsk->sk_peercred.pid = current->pid; + newsk->sk_peercred.pid = current->tgid; newsk->sk_peercred.uid = current->euid; newsk->sk_peercred.gid = current->egid; newu = unix_sk(newsk); @@ -1045,7 +1045,7 @@ static int unix_socketpair(struct socket *socka, struct socket *sockb) sock_hold(skb); unix_peer(ska)=skb; unix_peer(skb)=ska; - ska->sk_peercred.pid = skb->sk_peercred.pid = current->pid; + ska->sk_peercred.pid = skb->sk_peercred.pid = current->tgid; ska->sk_peercred.uid = skb->sk_peercred.uid = current->euid; ska->sk_peercred.gid = skb->sk_peercred.gid = current->egid; |
