diff options
Diffstat (limited to 'net/unix')
| -rw-r--r-- | net/unix/diag.c | 3 | ||||
| -rw-r--r-- | net/unix/sysctl_net_unix.c | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/net/unix/diag.c b/net/unix/diag.c index 06748f108a57..5ac19dc1d5e4 100644 --- a/net/unix/diag.c +++ b/net/unix/diag.c | |||
| @@ -151,6 +151,9 @@ static int sk_diag_fill(struct sock *sk, struct sk_buff *skb, struct unix_diag_r | |||
| 151 | sock_diag_put_meminfo(sk, skb, UNIX_DIAG_MEMINFO)) | 151 | sock_diag_put_meminfo(sk, skb, UNIX_DIAG_MEMINFO)) |
| 152 | goto out_nlmsg_trim; | 152 | goto out_nlmsg_trim; |
| 153 | 153 | ||
| 154 | if (nla_put_u8(skb, UNIX_DIAG_SHUTDOWN, sk->sk_shutdown)) | ||
| 155 | goto out_nlmsg_trim; | ||
| 156 | |||
| 154 | return nlmsg_end(skb, nlh); | 157 | return nlmsg_end(skb, nlh); |
| 155 | 158 | ||
| 156 | out_nlmsg_trim: | 159 | out_nlmsg_trim: |
diff --git a/net/unix/sysctl_net_unix.c b/net/unix/sysctl_net_unix.c index b34b5b9792f0..8800604c93f4 100644 --- a/net/unix/sysctl_net_unix.c +++ b/net/unix/sysctl_net_unix.c | |||
| @@ -34,6 +34,10 @@ int __net_init unix_sysctl_register(struct net *net) | |||
| 34 | if (table == NULL) | 34 | if (table == NULL) |
| 35 | goto err_alloc; | 35 | goto err_alloc; |
| 36 | 36 | ||
| 37 | /* Don't export sysctls to unprivileged users */ | ||
| 38 | if (net->user_ns != &init_user_ns) | ||
| 39 | table[0].procname = NULL; | ||
| 40 | |||
| 37 | table[0].data = &net->unx.sysctl_max_dgram_qlen; | 41 | table[0].data = &net->unx.sysctl_max_dgram_qlen; |
| 38 | net->unx.ctl = register_net_sysctl(net, "net/unix", table); | 42 | net->unx.ctl = register_net_sysctl(net, "net/unix", table); |
| 39 | if (net->unx.ctl == NULL) | 43 | if (net->unx.ctl == NULL) |
