Re: PRU_BIND in raw ip
Martin Pieuchot mpieuc...@nolizard.org writes: On 28/05/14(Wed) 09:30, Jérémie Courrèges-Anglas wrote: Martin Pieuchot mpieuc...@nolizard.org writes: Diff below replace in_iawithaddr() + in_broadcast() - ifa_ifwithaddr(), that does the same for IPv4 since broadcast addresses are added to the tree. This prevents listeners to bind on 255.255.255.255, something allowed with the current code. Thoughts? You're right, here's an updated diff that keeps this behavior. Sorry, busy week-end. ok jca@ Index: netinet/raw_ip.c === RCS file: /home/ncvs/src/sys/netinet/raw_ip.c,v retrieving revision 1.72 diff -u -p -r1.72 raw_ip.c --- netinet/raw_ip.c 21 Apr 2014 12:22:26 - 1.72 +++ netinet/raw_ip.c 28 May 2014 11:35:15 - @@ -465,9 +465,9 @@ rip_usrreq(struct socket *so, int req, s break; } if (!((so-so_options SO_BINDANY) || - addr-sin_addr.s_addr == 0 || - in_iawithaddr(addr-sin_addr, inp-inp_rtableid) || - in_broadcast(addr-sin_addr, NULL, inp-inp_rtableid))) { + addr-sin_addr.s_addr == INADDR_ANY || + addr-sin_addr.s_addr == INADDR_BROADCAST || + ifa_ifwithaddr(sintosa(addr), inp-inp_rtableid))) { error = EADDRNOTAVAIL; break; } -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE
Re: PRU_BIND in raw ip
On 28 May 2014 13:36, Martin Pieuchot mpieuc...@nolizard.org wrote: On 28/05/14(Wed) 09:30, Jérémie Courrèges-Anglas wrote: Martin Pieuchot mpieuc...@nolizard.org writes: Diff below replace in_iawithaddr() + in_broadcast() - ifa_ifwithaddr(), that does the same for IPv4 since broadcast addresses are added to the tree. This prevents listeners to bind on 255.255.255.255, something allowed with the current code. Thoughts? You're right, here's an updated diff that keeps this behavior. OK
Re: PRU_BIND in raw ip
Martin Pieuchot mpieuc...@nolizard.org writes: Diff below replace in_iawithaddr() + in_broadcast() - ifa_ifwithaddr(), that does the same for IPv4 since broadcast addresses are added to the tree. This prevents listeners to bind on 255.255.255.255, something allowed with the current code. Thoughts? ok? Index: netinet/raw_ip.c === RCS file: /home/ncvs/src/sys/netinet/raw_ip.c,v retrieving revision 1.72 diff -u -p -r1.72 raw_ip.c --- netinet/raw_ip.c 21 Apr 2014 12:22:26 - 1.72 +++ netinet/raw_ip.c 27 May 2014 11:02:45 - @@ -465,9 +465,8 @@ rip_usrreq(struct socket *so, int req, s break; } if (!((so-so_options SO_BINDANY) || - addr-sin_addr.s_addr == 0 || - in_iawithaddr(addr-sin_addr, inp-inp_rtableid) || - in_broadcast(addr-sin_addr, NULL, inp-inp_rtableid))) { + addr-sin_addr.s_addr == INADDR_ANY || + ifa_ifwithaddr(sintosa(addr), inp-inp_rtableid))) { error = EADDRNOTAVAIL; break; } -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE
Re: PRU_BIND in raw ip
On 28/05/14(Wed) 09:30, Jérémie Courrèges-Anglas wrote: Martin Pieuchot mpieuc...@nolizard.org writes: Diff below replace in_iawithaddr() + in_broadcast() - ifa_ifwithaddr(), that does the same for IPv4 since broadcast addresses are added to the tree. This prevents listeners to bind on 255.255.255.255, something allowed with the current code. Thoughts? You're right, here's an updated diff that keeps this behavior. Index: netinet/raw_ip.c === RCS file: /home/ncvs/src/sys/netinet/raw_ip.c,v retrieving revision 1.72 diff -u -p -r1.72 raw_ip.c --- netinet/raw_ip.c21 Apr 2014 12:22:26 - 1.72 +++ netinet/raw_ip.c28 May 2014 11:35:15 - @@ -465,9 +465,9 @@ rip_usrreq(struct socket *so, int req, s break; } if (!((so-so_options SO_BINDANY) || - addr-sin_addr.s_addr == 0 || - in_iawithaddr(addr-sin_addr, inp-inp_rtableid) || - in_broadcast(addr-sin_addr, NULL, inp-inp_rtableid))) { + addr-sin_addr.s_addr == INADDR_ANY || + addr-sin_addr.s_addr == INADDR_BROADCAST || + ifa_ifwithaddr(sintosa(addr), inp-inp_rtableid))) { error = EADDRNOTAVAIL; break; }
PRU_BIND in raw ip
Diff below replace in_iawithaddr() + in_broadcast() - ifa_ifwithaddr(), that does the same for IPv4 since broadcast addresses are added to the tree. ok? Index: netinet/raw_ip.c === RCS file: /home/ncvs/src/sys/netinet/raw_ip.c,v retrieving revision 1.72 diff -u -p -r1.72 raw_ip.c --- netinet/raw_ip.c21 Apr 2014 12:22:26 - 1.72 +++ netinet/raw_ip.c27 May 2014 11:02:45 - @@ -465,9 +465,8 @@ rip_usrreq(struct socket *so, int req, s break; } if (!((so-so_options SO_BINDANY) || - addr-sin_addr.s_addr == 0 || - in_iawithaddr(addr-sin_addr, inp-inp_rtableid) || - in_broadcast(addr-sin_addr, NULL, inp-inp_rtableid))) { + addr-sin_addr.s_addr == INADDR_ANY || + ifa_ifwithaddr(sintosa(addr), inp-inp_rtableid))) { error = EADDRNOTAVAIL; break; }