diff options
Diffstat (limited to 'networking/libiproute/iptunnel.c')
-rw-r--r-- | networking/libiproute/iptunnel.c | 14 |
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); |