diff toys/pending/dhcp.c @ 1639:856b544f8fce draft

strncpy(optptr, hname, strlen(hname)) is really just strcpy().
author Rob Landley <rob@landley.net>
date Thu, 01 Jan 2015 16:49:55 -0600
parents e0c9c5424864
children 41efba077b75
line wrap: on
line diff
--- a/toys/pending/dhcp.c	Thu Jan 01 16:28:51 2015 -0600
+++ b/toys/pending/dhcp.c	Thu Jan 01 16:49:55 2015 -0600
@@ -288,7 +288,7 @@
   int fd = xsocket(AF_INET, SOCK_RAW, IPPROTO_RAW);
 
   req.ifr_addr.sa_family = AF_INET;
-  strncpy(req.ifr_name, interface, IFNAMSIZ);
+  xstrncpy(req.ifr_name, interface, IFNAMSIZ);
   req.ifr_name[IFNAMSIZ-1] = '\0';
 
   xioctl(fd, SIOCGIFFLAGS, &req);
@@ -628,7 +628,7 @@
     close(state->sockfd);
     return -1;
   }
-  strncpy(ifr.ifr_name, state->iface, IFNAMSIZ);
+  xstrncpy(ifr.ifr_name, state->iface, IFNAMSIZ);
   ifr.ifr_name[IFNAMSIZ -1] = '\0';
   setsockopt(state->sockfd, SOL_SOCKET, SO_BINDTODEVICE, &ifr, sizeof(ifr));
 
@@ -884,14 +884,16 @@
 }
 
 // adds hostname to dhcp packet.
-static uint8_t *dhcpc_addfdnname(uint8_t *optptr,  char *hname)
+static uint8_t *dhcpc_addfdnname(uint8_t *optptr, char *hname)
 {
   int size = strlen(hname);
+
   *optptr++ = DHCP_OPTION_FQDN;
   *optptr++ = size + 3;
   *optptr++ = 0x1;  //flags
   optptr += 2;      // two blank bytes
-  strncpy((char*)optptr, hname, size); // name
+  strcpy((char*)optptr, hname); // name
+
   return optptr + size;
 }