$OpenBSD: patch-ifcontrol_cc,v 1.1 2006/11/01 21:13:19 kili Exp $

# From upstream SVN.

--- ifcontrol.cc.orig	Mon Aug  9 06:36:01 2004
+++ ifcontrol.cc	Fri Oct 20 15:38:06 2006
@@ -32,7 +32,8 @@ int Ifconfig_Set_Flags(const char *in_de
     }
 
     // Fetch interface flags
-    strncpy(ifr.ifr_name, in_dev, IFNAMSIZ);
+    memset(&ifr, 0, sizeof ifr);
+    strncpy(ifr.ifr_name, in_dev, sizeof(ifr.ifr_name)-1);
     ifr.ifr_flags = flags;
     if (ioctl(skfd, SIOCSIFFLAGS, &ifr) < 0) {
         snprintf(errstr, STATUS_MAX, "SetIFFlags: Unknown interface %s: %s", 
@@ -58,7 +59,8 @@ int Ifconfig_Get_Flags(const char *in_de
     }
 
     // Fetch interface flags
-    strncpy(ifr.ifr_name, in_dev, IFNAMSIZ);
+    memset(&ifr, 0, sizeof ifr);
+    strncpy(ifr.ifr_name, in_dev, sizeof(ifr.ifr_name)-1);
     if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0) {
         snprintf(errstr, STATUS_MAX, "GetIFFlags: interface %s: %s", 
                  in_dev, strerror(errno));
@@ -96,7 +98,8 @@ int Ifconfig_Get_Hwaddr(const char *in_d
     }
 
     // Fetch interface flags
-    strncpy(ifr.ifr_name, in_dev, IFNAMSIZ);
+    memset(&ifr, 0, sizeof ifr);
+    strncpy(ifr.ifr_name, in_dev, sizeof(ifr.ifr_name)-1);
     if (ioctl(skfd, SIOCGIFHWADDR, &ifr) < 0) {
         snprintf(errstr, STATUS_MAX, "Getting HWAddr: unknown interface %s: %s", 
                  in_dev, strerror(errno));
@@ -122,7 +125,8 @@ int Ifconfig_Set_Hwaddr(const char *in_d
         return -1;
     }
 
-    strncpy(ifr.ifr_name, in_dev, IFNAMSIZ);
+    memset(&ifr, 0, sizeof ifr);
+    strncpy(ifr.ifr_name, in_dev, sizeof(ifr.ifr_name)-1);
     memcpy(ifr.ifr_hwaddr.sa_data, in_hwaddr, 6);
     ifr.ifr_hwaddr.sa_family = ARPHRD_ETHER;
      
@@ -151,7 +155,8 @@ int Ifconfig_Set_MTU(const char *in_dev,
     }
 
     // Fetch interface flags
-    strncpy(ifr.ifr_name, in_dev, IFNAMSIZ);
+    memset(&ifr, 0, sizeof ifr);
+    strncpy(ifr.ifr_name, in_dev, sizeof(ifr.ifr_name)-1);
     ifr.ifr_mtu = in_mtu;
     if (ioctl(skfd, SIOCSIFMTU, &ifr) < 0) {
         snprintf(errstr, STATUS_MAX, "Setting MTU: unknown interface %s: %s", 
