Print this page
OS-4807 arp(1M) and ndp(1M) should use zone_get_nroot()

*** 56,65 **** --- 56,66 ---- #include <unistd.h> #include <string.h> #include <arpa/inet.h> #include <net/if_types.h> #include <net/if_dl.h> + #include <zone.h> static int file(char *); static int set(int, char *[]); static void get(char *); static void delete(char *);
*** 116,130 **** /* * the easiest way to get the complete arp table * is to let netstat, which prints it as part of * the MIB statistics, do it. */ ! (void) execl("/usr/bin/netstat", "netstat", (n_flag ? "-np" : "-p"), "-f", "inet", (char *)0); ! (void) fprintf(stderr, "failed to exec netstat: %s\n", ! strerror(errno)); exit(1); } else if (s_flag && (argsleft >= 2)) { if (set(argsleft, &argv[optind]) != 0) exit(1); --- 117,135 ---- /* * the easiest way to get the complete arp table * is to let netstat, which prints it as part of * the MIB statistics, do it. */ ! char netstat_path[MAXPATHLEN]; ! const char *zroot = zone_get_nroot(); ! (void) snprintf(netstat_path, sizeof (netstat_path), "%s%s", zroot != NULL ? ! zroot : "", "/usr/bin/netstat"); ! (void) execl(netstat_path, "netstat", (n_flag ? "-np" : "-p"), "-f", "inet", (char *)0); ! (void) fprintf(stderr, "failed to exec %s: %s\n", ! netstat_path, strerror(errno)); exit(1); } else if (s_flag && (argsleft >= 2)) { if (set(argsleft, &argv[optind]) != 0) exit(1);