summaryrefslogtreecommitdiff
path: root/net/mopd/files/patch-common_device.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mopd/files/patch-common_device.c')
-rw-r--r--net/mopd/files/patch-common_device.c47
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 */