aboutsummaryrefslogtreecommitdiff
path: root/networking/libiproute/iptunnel.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/libiproute/iptunnel.c')
-rw-r--r--networking/libiproute/iptunnel.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/networking/libiproute/iptunnel.c b/networking/libiproute/iptunnel.c
index 2b9d3055e..2080324ac 100644
--- a/networking/libiproute/iptunnel.c
+++ b/networking/libiproute/iptunnel.c
@@ -42,7 +42,7 @@ static int do_ioctl_get_ifindex(char *dev)
42 struct ifreq ifr; 42 struct ifreq ifr;
43 int fd; 43 int fd;
44 44
45 strcpy(ifr.ifr_name, dev); 45 strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name));
46 fd = xsocket(AF_INET, SOCK_DGRAM, 0); 46 fd = xsocket(AF_INET, SOCK_DGRAM, 0);
47 if (ioctl(fd, SIOCGIFINDEX, &ifr)) { 47 if (ioctl(fd, SIOCGIFINDEX, &ifr)) {
48 bb_perror_msg("ioctl"); 48 bb_perror_msg("ioctl");
@@ -57,7 +57,7 @@ static int do_ioctl_get_iftype(char *dev)
57 struct ifreq ifr; 57 struct ifreq ifr;
58 int fd; 58 int fd;
59 59
60 strcpy(ifr.ifr_name, dev); 60 strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name));
61 fd = xsocket(AF_INET, SOCK_DGRAM, 0); 61 fd = xsocket(AF_INET, SOCK_DGRAM, 0);
62 if (ioctl(fd, SIOCGIFHWADDR, &ifr)) { 62 if (ioctl(fd, SIOCGIFHWADDR, &ifr)) {
63 bb_perror_msg("ioctl"); 63 bb_perror_msg("ioctl");
@@ -91,7 +91,7 @@ static int do_get_ioctl(char *basedev, struct ip_tunnel_parm *p)
91 int fd; 91 int fd;
92 int err; 92 int err;
93 93
94 strcpy(ifr.ifr_name, basedev); 94 strncpy(ifr.ifr_name, basedev, sizeof(ifr.ifr_name));
95 ifr.ifr_ifru.ifru_data = (void*)p; 95 ifr.ifr_ifru.ifru_data = (void*)p;
96 fd = xsocket(AF_INET, SOCK_DGRAM, 0); 96 fd = xsocket(AF_INET, SOCK_DGRAM, 0);
97 err = ioctl(fd, SIOCGETTUNNEL, &ifr); 97 err = ioctl(fd, SIOCGETTUNNEL, &ifr);
@@ -109,9 +109,9 @@ static int do_add_ioctl(int cmd, char *basedev, struct ip_tunnel_parm *p)
109 int err; 109 int err;
110 110
111 if (cmd == SIOCCHGTUNNEL && p->name[0]) { 111 if (cmd == SIOCCHGTUNNEL && p->name[0]) {
112 strcpy(ifr.ifr_name, p->name); 112 strncpy(ifr.ifr_name, p->name, sizeof(ifr.ifr_name));
113 } else { 113 } else {
114 strcpy(ifr.ifr_name, basedev); 114 strncpy(ifr.ifr_name, basedev, sizeof(ifr.ifr_name));
115 } 115 }
116 ifr.ifr_ifru.ifru_data = (void*)p; 116 ifr.ifr_ifru.ifru_data = (void*)p;
117 fd = xsocket(AF_INET, SOCK_DGRAM, 0); 117 fd = xsocket(AF_INET, SOCK_DGRAM, 0);
@@ -130,9 +130,9 @@ static int do_del_ioctl(char *basedev, struct ip_tunnel_parm *p)
130 int err; 130 int err;
131 131
132 if (p->name[0]) { 132 if (p->name[0]) {
133 strcpy(ifr.ifr_name, p->name); 133 strncpy(ifr.ifr_name, p->name, sizeof(ifr.ifr_name));
134 } else { 134 } else {
135 strcpy(ifr.ifr_name, basedev); 135 strncpy(ifr.ifr_name, basedev, sizeof(ifr.ifr_name));
136 } 136 }
137 ifr.ifr_ifru.ifru_data = (void*)p; 137 ifr.ifr_ifru.ifru_data = (void*)p;
138 fd = xsocket(AF_INET, SOCK_DGRAM, 0); 138 fd = xsocket(AF_INET, SOCK_DGRAM, 0);