From dbb295662035a42acb0014325e04e2cb9ebfa8bd Mon Sep 17 00:00:00 2001 From: "David E. O'Brien" Date: Wed, 9 Jan 2008 18:06:24 +0000 Subject: [PATCH] Improve -u (limit uid lookups) behavior. Submitted by: David Frascone PR: 119490 --- contrib/top/top.c | 2 +- usr.bin/top/machine.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/contrib/top/top.c b/contrib/top/top.c index eac2ecca466..b38300f033e 100644 --- a/contrib/top/top.c +++ b/contrib/top/top.c @@ -450,7 +450,7 @@ char *argv[]; } /* initialize the kernel memory interface */ - if (machine_init(&statics) == -1) + if (machine_init(&statics, do_unames) == -1) { exit(1); } diff --git a/usr.bin/top/machine.c b/usr.bin/top/machine.c index cc12705b4c8..d6fa14c0428 100644 --- a/usr.bin/top/machine.c +++ b/usr.bin/top/machine.c @@ -60,7 +60,11 @@ extern struct process_select ps; extern char* printable(char *); static int smpmode; enum displaymodes displaymode; +#ifdef TOP_USERNAME_LEN +static int namelength = TOP_USERNAME_LEN; +#else static int namelength = 8; +#endif static int cmdlengthdelta; /* Prototypes for top internals */ @@ -223,7 +227,7 @@ static void getsysctl(const char *name, void *ptr, size_t len); static int swapmode(int *retavail, int *retfree); int -machine_init(struct statics *statics) +machine_init(struct statics *statics, char do_unames) { int pagesize; size_t modelen; @@ -237,9 +241,11 @@ machine_init(struct statics *statics) modelen != sizeof(smpmode)) smpmode = 0; - while ((pw = getpwent()) != NULL) { + if (do_unames) { + while ((pw = getpwent()) != NULL) { if (strlen(pw->pw_name) > namelength) namelength = strlen(pw->pw_name); + } } if (smpmode && namelength > SMPUNAMELEN) namelength = SMPUNAMELEN;