Convert to using strnkc(at|py).

This commit is contained in:
Nicholas J. Kain
2013-05-06 07:07:54 -04:00
parent 7ab11e8295
commit 958a57d819
7 changed files with 37 additions and 41 deletions

View File

@@ -198,7 +198,7 @@ static void write_resolve_conf(struct ifchd_client *cl)
q = strchr(p, '\0');
else
*q++ = '\0';
strlcpy(buf, p, sizeof buf);
strnkcpy(buf, p, sizeof buf);
writeordie(resolv_conf_fd, ns_str, strlen(ns_str));
writeordie(resolv_conf_fd, buf, strlen(buf));
@@ -215,7 +215,7 @@ static void write_resolve_conf(struct ifchd_client *cl)
q = strchr(p, '\0');
else
*q++ = '\0';
strlcpy(buf, p, sizeof buf);
strnkcpy(buf, p, sizeof buf);
if (numdoms == 0) {
writeordie(resolv_conf_fd, dom_str, strlen(dom_str));
@@ -270,7 +270,7 @@ static void perform_dns(struct ifchd_client *cl, char *str)
{
if (!str || resolv_conf_fd == -1)
return;
strlcpy(cl->namesvrs, str, MAX_BUF);
strnkcpy(cl->namesvrs, str, MAX_BUF);
write_resolve_conf(cl);
}
@@ -292,7 +292,7 @@ static void perform_domain(struct ifchd_client *cl, char *str)
{
if (!str || resolv_conf_fd == -1)
return;
strlcpy(cl->domains, str, MAX_BUF);
strnkcpy(cl->domains, str, MAX_BUF);
write_resolve_conf(cl);
}
@@ -387,8 +387,13 @@ static int execute_buffer(struct ifchd_client *cl, char *newbuf)
char *p = buf, *endp;
memset(buf, 0, sizeof buf);
strlcat(buf, cl->ibuf, sizeof buf);
strlcat(buf, newbuf, sizeof buf);
if (strnkcat(buf, cl->ibuf, sizeof buf))
goto buftooshort;
if (strnkcat(buf, newbuf, sizeof buf)) {
buftooshort:
log_line("error: input is too long for buffer");
return -1;
}
for (endp = p;;p = endp) {
if (cl->state == STATE_NOTHING) {
@@ -528,7 +533,7 @@ static int execute_buffer(struct ifchd_client *cl, char *newbuf)
size_t remsize = strlen(endp);
if (remsize > MAX_BUF - 1)
return -1;
strlcpy(cl->ibuf, endp, MAX_BUF);
strnkcpy(cl->ibuf, endp, MAX_BUF);
return 0;
}
@@ -842,15 +847,15 @@ int main(int argc, char** argv) {
break;
case 'c':
strlcpy(chrootd, optarg, MAX_PATH_LENGTH);
strnkcpy(chrootd, optarg, MAX_PATH_LENGTH);
break;
case 'p':
strlcpy(pidfile, optarg, MAX_PATH_LENGTH);
strnkcpy(pidfile, optarg, MAX_PATH_LENGTH);
break;
case 'r':
strlcpy(resolv_conf_d, optarg, MAX_PATH_LENGTH);
strnkcpy(resolv_conf_d, optarg, MAX_PATH_LENGTH);
break;
case 'o':

View File

@@ -60,7 +60,7 @@ void add_permitted_if(char *s)
{
if (numokif >= MAX_IFACES)
return;
strlcpy(okif[numokif++], s, IFNAMSIZ);
strnkcpy(okif[numokif++], s, IFNAMSIZ);
}
/* Checks if changes are permitted to a given interface. 1 == allowed */
@@ -110,7 +110,7 @@ void perform_interface(struct ifchd_client *cl, char *str)
/* Update interface name. */
memset(cl->ifnam, '\0', IFNAMSIZ);
strlcpy(cl->ifnam, str, IFNAMSIZ);
strnkcpy(cl->ifnam, str, IFNAMSIZ);
}
static int set_if_flag(struct ifchd_client *cl, short flag)
@@ -128,13 +128,13 @@ static int set_if_flag(struct ifchd_client *cl, short flag)
goto out0;
}
strlcpy(ifrt.ifr_name, cl->ifnam, IFNAMSIZ);
strnkcpy(ifrt.ifr_name, cl->ifnam, IFNAMSIZ);
if (ioctl(fd, SIOCGIFFLAGS, &ifrt) < 0) {
log_line("%s: unknown interface: %s\n", cl->ifnam, strerror(errno));
goto out1;
}
if (((ifrt.ifr_flags & flag ) ^ flag) & flag) {
strlcpy(ifrt.ifr_name, cl->ifnam, IFNAMSIZ);
strnkcpy(ifrt.ifr_name, cl->ifnam, IFNAMSIZ);
ifrt.ifr_flags |= flag;
if (ioctl(fd, SIOCSIFFLAGS, &ifrt) < 0) {
log_line("%s: failed to set interface flags: %s\n",
@@ -167,7 +167,7 @@ void perform_ip(struct ifchd_client *cl, char *str)
if (set_if_flag(cl, (IFF_UP | IFF_RUNNING)))
return;
strlcpy(ifrt.ifr_name, cl->ifnam, IFNAMSIZ);
strnkcpy(ifrt.ifr_name, cl->ifnam, IFNAMSIZ);
memset(&sin, 0, sizeof(struct sockaddr));
sin.sin_family = AF_INET;
sin.sin_addr = ipaddr;
@@ -200,7 +200,7 @@ void perform_subnet(struct ifchd_client *cl, char *str)
if (!inet_pton(AF_INET, str, &subnet))
return;
strlcpy(ifrt.ifr_name, cl->ifnam, IFNAMSIZ);
strnkcpy(ifrt.ifr_name, cl->ifnam, IFNAMSIZ);
memset(&sin, 0, sizeof(struct sockaddr));
sin.sin_family = AF_INET;
sin.sin_addr = subnet;
@@ -283,7 +283,7 @@ void perform_mtu(struct ifchd_client *cl, char *str)
if (mtu < 576)
return;
ifrt.ifr_mtu = mtu;
strlcpy(ifrt.ifr_name, cl->ifnam, IFNAMSIZ);
strnkcpy(ifrt.ifr_name, cl->ifnam, IFNAMSIZ);
fd = socket(AF_INET, SOCK_DGRAM, 0);
if (fd == -1) {
@@ -311,7 +311,7 @@ void perform_broadcast(struct ifchd_client *cl, char *str)
if (!inet_pton(AF_INET, str, &broadcast))
return;
strlcpy(ifrt.ifr_name, cl->ifnam, IFNAMSIZ);
strnkcpy(ifrt.ifr_name, cl->ifnam, IFNAMSIZ);
memset(&sin, 0, sizeof(struct sockaddr));
sin.sin_family = AF_INET;
sin.sin_addr = broadcast;