diff options
| author | 2013-10-23 16:28:39 -0400 | |
|---|---|---|
| committer | 2013-10-23 16:49:34 -0400 | |
| commit | c3fa32b9764dc45dcf8a2231b1c110abc4a63e0b (patch) | |
| tree | 6cf2896a77b65bec64284681e1c3851eb3263e09 /net/unix/af_unix.c | |
| parent | net: always inline net_secret_init (diff) | |
| parent | Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux (diff) | |
| download | wireguard-linux-c3fa32b9764dc45dcf8a2231b1c110abc4a63e0b.tar.xz wireguard-linux-c3fa32b9764dc45dcf8a2231b1c110abc4a63e0b.zip | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
	drivers/net/usb/qmi_wwan.c
	include/net/dst.h
Trivial merge conflicts, both were overlapping changes.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/unix/af_unix.c')
| -rw-r--r-- | net/unix/af_unix.c | 10 | 
1 files changed, 10 insertions, 0 deletions
| diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 86de99ad2976..c1f403bed683 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@ -1246,6 +1246,15 @@ static int unix_socketpair(struct socket *socka, struct socket *sockb)  	return 0;  } +static void unix_sock_inherit_flags(const struct socket *old, +				    struct socket *new) +{ +	if (test_bit(SOCK_PASSCRED, &old->flags)) +		set_bit(SOCK_PASSCRED, &new->flags); +	if (test_bit(SOCK_PASSSEC, &old->flags)) +		set_bit(SOCK_PASSSEC, &new->flags); +} +  static int unix_accept(struct socket *sock, struct socket *newsock, int flags)  {  	struct sock *sk = sock->sk; @@ -1280,6 +1289,7 @@ static int unix_accept(struct socket *sock, struct socket *newsock, int flags)  	/* attach accepted sock to socket */  	unix_state_lock(tsk);  	newsock->state = SS_CONNECTED; +	unix_sock_inherit_flags(sock, newsock);  	sock_graft(tsk, newsock);  	unix_state_unlock(tsk);  	return 0; | 
