aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2016-07-04 17:38:01 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2016-07-04 17:38:01 +0200
commitee772a0d90e2775cbe40072fd5217552c260a9aa (patch)
treee677e9289b7d4aa4a0e8835020c86fe2221988b0
parent44399e00ffa73270cd7fc108c983d3b1705b9d86 (diff)
downloadbusybox-w32-ee772a0d90e2775cbe40072fd5217552c260a9aa.tar.gz
busybox-w32-ee772a0d90e2775cbe40072fd5217552c260a9aa.tar.bz2
busybox-w32-ee772a0d90e2775cbe40072fd5217552c260a9aa.zip
arp: fix buffer overflow. Closes 9071
function old new delta arp_main 1910 1898 -12 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--networking/arp.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/networking/arp.c b/networking/arp.c
index 9381eb53a..69a5816eb 100644
--- a/networking/arp.c
+++ b/networking/arp.c
@@ -178,7 +178,7 @@ static int arp_del(char **args)
178 if (flags == 0) 178 if (flags == 0)
179 flags = 3; 179 flags = 3;
180 180
181 strncpy(req.arp_dev, device, sizeof(req.arp_dev)); 181 strncpy_IFNAMSIZ(req.arp_dev, device);
182 182
183 err = -1; 183 err = -1;
184 184
@@ -219,7 +219,7 @@ static void arp_getdevhw(char *ifname, struct sockaddr *sa)
219 struct ifreq ifr; 219 struct ifreq ifr;
220 const struct hwtype *xhw; 220 const struct hwtype *xhw;
221 221
222 strcpy(ifr.ifr_name, ifname); 222 strncpy_IFNAMSIZ(ifr.ifr_name, ifname);
223 ioctl_or_perror_and_die(sockfd, SIOCGIFHWADDR, &ifr, 223 ioctl_or_perror_and_die(sockfd, SIOCGIFHWADDR, &ifr,
224 "can't get HW-Address for '%s'", ifname); 224 "can't get HW-Address for '%s'", ifname);
225 if (hw_set && (ifr.ifr_hwaddr.sa_family != hw->type)) { 225 if (hw_set && (ifr.ifr_hwaddr.sa_family != hw->type)) {
@@ -332,7 +332,7 @@ static int arp_set(char **args)
332 /* Fill in the remainder of the request. */ 332 /* Fill in the remainder of the request. */
333 req.arp_flags = flags; 333 req.arp_flags = flags;
334 334
335 strncpy(req.arp_dev, device, sizeof(req.arp_dev)); 335 strncpy_IFNAMSIZ(req.arp_dev, device);
336 336
337 /* Call the kernel. */ 337 /* Call the kernel. */
338 if (option_mask32 & ARP_OPT_v) 338 if (option_mask32 & ARP_OPT_v)