From aa200cda6a7486440befb4d9ba2e52136d866cf1 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Tue, 30 Jul 2019 11:37:26 -0600 Subject: [PATCH] Replace non-essential strncpy() calls. --- plugins/group_file/plugin_test.c | 6 ++++-- src/net_ifs.c | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/group_file/plugin_test.c b/plugins/group_file/plugin_test.c index 9b9412cf6..24cea4347 100644 --- a/plugins/group_file/plugin_test.c +++ b/plugins/group_file/plugin_test.c @@ -90,8 +90,10 @@ group_plugin_load(char *plugin_info) savedch = *args; *args = '\0'; } - strncpy(path, plugin_info, sizeof(path) - 1); - path[sizeof(path) - 1] = '\0'; + if (strlcpy(path, plugin_info, sizeof(path)) >= sizeof(path)) { + fprintf(stderr, "path too long: %s\n", plugin_info); + return -1; + } if (args != NULL) *args++ = savedch; diff --git a/src/net_ifs.c b/src/net_ifs.c index e0de1e5ed..9014b652a 100644 --- a/src/net_ifs.c +++ b/src/net_ifs.c @@ -309,7 +309,7 @@ get_net_ifs(char **addrinfo) #ifdef SIOCGIFFLAGS memset(ifr_tmp, 0, sizeof(*ifr_tmp)); - strncpy(ifr_tmp->ifr_name, ifr->ifr_name, sizeof(ifr_tmp->ifr_name) - 1); + memcpy(ifr_tmp->ifr_name, ifr->ifr_name, sizeof(ifr_tmp->ifr_name)); if (ioctl(sock, SIOCGIFFLAGS, (caddr_t) ifr_tmp) < 0) #endif memcpy(ifr_tmp, ifr, sizeof(*ifr_tmp)); @@ -321,7 +321,7 @@ get_net_ifs(char **addrinfo) /* Get the netmask. */ memset(ifr_tmp, 0, sizeof(*ifr_tmp)); - strncpy(ifr_tmp->ifr_name, ifr->ifr_name, sizeof(ifr_tmp->ifr_name) - 1); + memcpy(ifr_tmp->ifr_name, ifr->ifr_name, sizeof(ifr_tmp->ifr_name)); sin = (struct sockaddr_in *) &ifr_tmp->ifr_addr; #ifdef _ISC STRSET(SIOCGIFNETMASK, (caddr_t) ifr_tmp, sizeof(*ifr_tmp));