Jeremie Courreges-Anglas([email protected]) on 2017.10.04 22:02:55 +0200:
> 
> We don't and won't support this, so let's not even try.
> 
> ok?
> 
> 
> Index: inetd.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/inetd/inetd.c,v
> retrieving revision 1.156
> diff -u -p -r1.156 inetd.c
> --- inetd.c   4 Oct 2017 19:52:26 -0000       1.156
> +++ inetd.c   4 Oct 2017 19:58:48 -0000
> @@ -444,7 +444,6 @@ dg_badinput(struct sockaddr *sa)
>       case AF_INET:
>               in.s_addr = ntohl(((struct sockaddr_in *)sa)->sin_addr.s_addr);
>               port = ntohs(((struct sockaddr_in *)sa)->sin_port);
> -     v4chk:
>               if (IN_MULTICAST(in.s_addr))
>                       goto bad;
>               switch ((in.s_addr & 0xff000000) >> 24) {
> @@ -460,16 +459,12 @@ dg_badinput(struct sockaddr *sa)
>               if (IN6_IS_ADDR_MULTICAST(in6) || IN6_IS_ADDR_UNSPECIFIED(in6))
>                       goto bad;
>               /*
> -              * OpenBSD does not support IPv4 mapped address (RFC2553
> -              * inbound behavior) at all.  We should drop it.
> +              * OpenBSD does not support IPv4-mapped and
> +              * IPv4-compatible IPv6 addresses (RFC2553). We should
> +              * drop the packet.
>                */
> -             if (IN6_IS_ADDR_V4MAPPED(in6))
> +             if (IN6_IS_ADDR_V4MAPPED(in6) || IN6_IS_ADDR_V4COMPAT(in6))
>                       goto bad;
> -             if (IN6_IS_ADDR_V4COMPAT(in6)) {
> -                     memcpy(&in, &in6->s6_addr[12], sizeof(in));
> -                     in.s_addr = ntohl(in.s_addr);
> -                     goto v4chk;
> -             }
>               break;
>       default:
>               /* Unsupported AF */
> 
> 
> -- 
> jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE
> 

Reply via email to