Re: PRU_BIND in raw ip

2014-06-02 Thread Jérémie Courrèges-Anglas
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

2014-06-02 Thread Mike Belopuhov
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

2014-05-28 Thread Jérémie Courrèges-Anglas
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

2014-05-28 Thread Martin Pieuchot
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

2014-05-27 Thread Martin Pieuchot
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;
}