summaryrefslogtreecommitdiff
path: root/net/mopd/files/patch-device.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mopd/files/patch-device.c')
-rw-r--r--net/mopd/files/patch-device.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/net/mopd/files/patch-device.c b/net/mopd/files/patch-device.c
new file mode 100644
index 000000000000..e6ffd6c7469d
--- /dev/null
+++ b/net/mopd/files/patch-device.c
@@ -0,0 +1,38 @@
+--- common/device.c 1996/09/21 13:49:16 1.1
++++ common/device.c 2000/02/20 17:45:33 1.4
+@@ -111,7 +113,8 @@
+ {
+ 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 +141,8 @@
+ 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 +199,12 @@
+ 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 */