]> granicus.if.org Git - sudo/commitdiff
Use sudo_strsplit() in dump_interfaces.
authorTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 19 Jun 2015 14:57:54 +0000 (08:57 -0600)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 19 Jun 2015 14:57:54 +0000 (08:57 -0600)
plugins/sudoers/interfaces.c

index bb3edd73295ace4a9693aeda1d4f3c2f5400e2bd..d205b00fb7fb4c3c67f2401c206db2d813f849da 100644 (file)
@@ -111,18 +111,17 @@ get_interfaces(void)
 void
 dump_interfaces(const char *ai)
 {
-    char *cp, *addrinfo;
+    const char *cp, *ep;
+    const char *ai_end = ai + strlen(ai);
     debug_decl(set_interfaces, SUDOERS_DEBUG_NETIF)
 
-    if ((addrinfo = strdup(ai)) == NULL) {
-       sudo_warnx(U_("unable to allocate memory"));
-    } else {
-       sudo_printf(SUDO_CONV_INFO_MSG,
-           _("Local IP address and netmask pairs:\n"));
-       for (cp = strtok(addrinfo, " \t"); cp != NULL; cp = strtok(NULL, " \t"))
-           sudo_printf(SUDO_CONV_INFO_MSG, "\t%s\n", cp);
-
-       free(addrinfo);
+    sudo_printf(SUDO_CONV_INFO_MSG,
+       _("Local IP address and netmask pairs:\n"));
+    cp = sudo_strsplit(ai, ai_end, " \t", &ep);
+    while (cp != NULL) {
+       sudo_printf(SUDO_CONV_INFO_MSG, "\t%.*s\n", (int)(ep - cp), cp);
+       cp = sudo_strsplit(NULL, ai_end, " \t", &ep);
     }
+
     debug_return;
 }