]> granicus.if.org Git - sudo/commitdiff
Replace non-essential strncpy() calls.
authorTodd C. Miller <Todd.Miller@sudo.ws>
Tue, 30 Jul 2019 17:37:26 +0000 (11:37 -0600)
committerTodd C. Miller <Todd.Miller@sudo.ws>
Tue, 30 Jul 2019 17:37:26 +0000 (11:37 -0600)
plugins/group_file/plugin_test.c
src/net_ifs.c

index 9b9412cf6cfcf3af97abc08c7d7c02b42579780d..24cea43477e5462f1e6807182437ee564d2a01cd 100644 (file)
@@ -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;
 
index e0de1e5ed68f262106a01ee18aba39dec6765dfd..9014b652a780dd081d023a98ee11dcc7a006036e 100644 (file)
@@ -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));