aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/af_inet.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4/af_inet.c')
-rw-r--r--net/ipv4/af_inet.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index aae410bb655a..28fe8da4e1ac 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -479,7 +479,7 @@ int inet_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
479 479
480 snum = ntohs(addr->sin_port); 480 snum = ntohs(addr->sin_port);
481 err = -EACCES; 481 err = -EACCES;
482 if (snum && snum < PROT_SOCK && 482 if (snum && snum < inet_prot_sock(net) &&
483 !ns_capable(net->user_ns, CAP_NET_BIND_SERVICE)) 483 !ns_capable(net->user_ns, CAP_NET_BIND_SERVICE))
484 goto out; 484 goto out;
485 485
@@ -1700,6 +1700,9 @@ static __net_init int inet_init_net(struct net *net)
1700 net->ipv4.sysctl_ip_default_ttl = IPDEFTTL; 1700 net->ipv4.sysctl_ip_default_ttl = IPDEFTTL;
1701 net->ipv4.sysctl_ip_dynaddr = 0; 1701 net->ipv4.sysctl_ip_dynaddr = 0;
1702 net->ipv4.sysctl_ip_early_demux = 1; 1702 net->ipv4.sysctl_ip_early_demux = 1;
1703#ifdef CONFIG_SYSCTL
1704 net->ipv4.sysctl_ip_prot_sock = PROT_SOCK;
1705#endif
1703 1706
1704 return 0; 1707 return 0;
1705} 1708}