diff options
Diffstat (limited to 'net/mopd/files/patch-common_device.c')
-rw-r--r-- | net/mopd/files/patch-common_device.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/net/mopd/files/patch-common_device.c b/net/mopd/files/patch-common_device.c new file mode 100644 index 000000000000..e5727929ccd7 --- /dev/null +++ b/net/mopd/files/patch-common_device.c @@ -0,0 +1,47 @@ +--- common/device.c.orig 1996-08-08 00:01:54 UTC ++++ common/device.c +@@ -35,7 +35,7 @@ static char rcsid[] = "$Id: device.c,v 1.21 1996/08/08 + #include "common/common.h" + #include "common/mopdef.h" + +-struct if_info *iflist; /* Interface List */ ++/*extern*/ struct if_info *iflist; /* Interface List */ + + void mopReadDL(); + void mopReadRC(); +@@ -111,7 +111,8 @@ deviceOpen(ifname, proto, trans) + { + struct if_info *p, tmp; + +- strcpy(tmp.if_name,ifname); ++ strncpy(tmp.if_name,ifname,sizeof(tmp.if_name) - 1); ++ tmp.if_name[sizeof(tmp.if_name) - 1] = 0; + tmp.iopen = pfInit; + + switch (proto) { +@@ -138,7 +139,8 @@ deviceOpen(ifname, proto, trans) + p->next = iflist; + iflist = p; + +- strcpy(p->if_name,tmp.if_name); ++ strncpy(p->if_name,tmp.if_name, IFNAME_SIZE -1); ++ p->if_name[IFNAME_SIZE -1] = 0; + p->iopen = tmp.iopen; + p->write = pfWrite; + p->read = tmp.read; +@@ -185,12 +187,12 @@ deviceInitOne(ifname) + if ((strlen(dev) == 2) && + (dev[0] == 'e') && + ((dev[1] == 'n') || (dev[1] == 't'))) { +- sprintf(interface,"ent%d\0",unit); ++ snprintf(interface,sizeof(interface),"ent%d\0",unit); + } else { +- sprintf(interface,"%s%d\0",dev,unit); ++ snprintf(interface,sizeof(interface),"%s%d\0",dev,unit); + } + #else +- sprintf(interface,"%s",ifname); ++ snprintf(interface,sizeof(interface),"%s",ifname); + #endif /* _AIX */ + + /* Ok, init it just once */ |