]> git.puffer.fish Git - matthieu/frr.git/commitdiff
2003-06-12 Paul Jakma <paul@dishone.st>
authorpaul <paul>
Thu, 12 Jun 2003 02:13:45 +0000 (02:13 +0000)
committerpaul <paul>
Thu, 12 Jun 2003 02:13:45 +0000 (02:13 +0000)
* zebra/ioctl.c: Properly zero-out struct ifreq before passing it
          to the SIOCSIFFLAGS ioctl(2), so that it doesn't
          occasionally trigger promisc mode on interface.
          Reported/tested by: Vladimir B. Grebenschikov <vova@sw.ru>

          (patch snarfed taken from FreeBSD ports)

zebra/ioctl.c

index f8e7f22b650352ec38b0142acf98d6a8314b5ab9..1a682e270e8172796e721faa227cc6368c57e643 100644 (file)
@@ -364,6 +364,7 @@ if_set_flags (struct interface *ifp, unsigned long flags)
   int ret;
   struct ifreq ifreq;
 
+  bzero(&ifreq, sizeof(struct ifreq));
   ifreq_set_name (&ifreq, ifp);
 
   ifreq.ifr_flags = ifp->flags;
@@ -386,6 +387,7 @@ if_unset_flags (struct interface *ifp, unsigned long flags)
   int ret;
   struct ifreq ifreq;
 
+  bzero(&ifreq, sizeof(struct ifreq));
   ifreq_set_name (&ifreq, ifp);
 
   ifreq.ifr_flags = ifp->flags;
@@ -488,6 +490,9 @@ if_prefix_add_ipv6 (struct interface *ifp, struct connected *ifc)
   mask.sin6_len = sizeof (struct sockaddr_in6);
 #endif
   memcpy (&addreq.ifra_prefixmask, &mask, sizeof (struct sockaddr_in6));
+
+  addreq.ifra_lifetime.ia6t_vltime = 0xffffffff;
+  addreq.ifra_lifetime.ia6t_pltime = 0xffffffff;
   
 #ifdef HAVE_IFRA_LIFETIME 
   addreq.ifra_lifetime.ia6t_pltime = ND6_INFINITE_LIFETIME;