diff options
| author | David Greenman <dg@FreeBSD.org> | 1998-04-28 06:59:14 +0000 |
|---|---|---|
| committer | David Greenman <dg@FreeBSD.org> | 1998-04-28 06:59:14 +0000 |
| commit | 214bed53a269621a3cc872ff1332f538f40dfb62 (patch) | |
| tree | 5e0e37fead7e5cc66bcf548ff17a1c2d88cd3a75 /lib/libc | |
| parent | 49772d612981e84e8a803d2667b6162bb8b9313b (diff) | |
Notes
Diffstat (limited to 'lib/libc')
| -rw-r--r-- | lib/libc/gen/setproctitle.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/lib/libc/gen/setproctitle.c b/lib/libc/gen/setproctitle.c index ba21d1c01b8a..e2ab614865cd 100644 --- a/lib/libc/gen/setproctitle.c +++ b/lib/libc/gen/setproctitle.c @@ -14,7 +14,7 @@ * 3. Absolutely no warranty of function or purpose is made by the author * Peter Wemm. * - * $Id$ + * $Id: setproctitle.c,v 1.5 1997/02/22 15:08:33 peter Exp $ */ #include <sys/types.h> @@ -55,9 +55,11 @@ struct old_ps_strings { #endif -#define SPT_BUFSIZE 2048 /* from other parts of sendmail */ +#define SPT_BUFSIZE 128 /* from other parts of sendmail */ extern char * __progname; /* is this defined in a .h anywhere? */ +static struct ps_strings *ps_strings; + void #if defined(__STDC__) setproctitle(const char *fmt, ...) @@ -71,7 +73,6 @@ setproctitle(fmt, va_alist) static char *ps_argv[2]; va_list ap; int mib[2]; - struct ps_strings *ps_strings; size_t len; #if defined(__STDC__) @@ -102,13 +103,14 @@ setproctitle(fmt, va_alist) va_end(ap); - ps_strings = NULL; - mib[0] = CTL_KERN; - mib[1] = KERN_PS_STRINGS; - len = sizeof(ps_strings); - if (sysctl(mib, 2, &ps_strings, &len, NULL, 0) < 0 || - ps_strings == NULL) - ps_strings = PS_STRINGS; + if (ps_strings == NULL) { + mib[0] = CTL_KERN; + mib[1] = KERN_PS_STRINGS; + len = sizeof(ps_strings); + if (sysctl(mib, 2, &ps_strings, &len, NULL, 0) < 0 || + ps_strings == NULL) + ps_strings = PS_STRINGS; + } /* PS_STRINGS points to zeroed memory on a style #2 kernel */ if (ps_strings->ps_argvstr) { |
