Commit b9fb1506 authored by Tóth László Attila's avatar Tóth László Attila Committed by David S. Miller

ipv4: Allow binding to non-local addresses if IP_TRANSPARENT is set

Setting IP_TRANSPARENT is not really useful without allowing non-local
binds for the socket. To make user-space code simpler we allow these
binds even if IP_TRANSPARENT is set but IP_FREEBIND is not.
Signed-off-by: default avatarTóth László Attila <panther@balabit.hu>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f5715aea
...@@ -469,7 +469,7 @@ int inet_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len) ...@@ -469,7 +469,7 @@ int inet_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
*/ */
err = -EADDRNOTAVAIL; err = -EADDRNOTAVAIL;
if (!sysctl_ip_nonlocal_bind && if (!sysctl_ip_nonlocal_bind &&
!inet->freebind && !(inet->freebind || inet->transparent) &&
addr->sin_addr.s_addr != htonl(INADDR_ANY) && addr->sin_addr.s_addr != htonl(INADDR_ANY) &&
chk_addr_ret != RTN_LOCAL && chk_addr_ret != RTN_LOCAL &&
chk_addr_ret != RTN_MULTICAST && chk_addr_ret != RTN_MULTICAST &&
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment