Hi tech@,

i've found the undocumented -carpdev option in ifconfig(8) which freezes
my sytem if executed.

As the -carpdev option is undocumented in both ifconfig(8) and carp(4) i
propose two patches to remove this functionality.

The patch below will return EINVAL in SIOCSVH if carpr.carpr_carpdev is not a
valid interface name.

I will send another patch to @tech to remove -carpdev from ifconfig(8)

Cheers,
Fabian


Index: ip_carp.c
===================================================================
RCS file: /cvs/src/sys/netinet/ip_carp.c,v
retrieving revision 1.284
diff -u -p -r1.284 ip_carp.c
--- ip_carp.c   19 Dec 2015 11:19:35 -0000      1.284
+++ ip_carp.c   30 Dec 2015 11:31:57 -0000
@@ -2022,8 +2022,7 @@ carp_ioctl(struct ifnet *ifp, u_long cmd
                if ((error = copyin(ifr->ifr_data, &carpr, sizeof carpr)))
                        break;
                error = 1;
-               if (carpr.carpr_carpdev[0] != '\0' &&
-                   (ifp0 = ifunit(carpr.carpr_carpdev)) == NULL)
+               if ((ifp0 = ifunit(carpr.carpr_carpdev)) == NULL)
                        return (EINVAL);
                if (carpr.carpr_peer.s_addr == 0)
                        sc->sc_peer.s_addr = INADDR_CARP_GROUP;

Reply via email to