diff options
author | David E. O'Brien <obrien@FreeBSD.org> | 2000-03-27 00:33:45 +0000 |
---|---|---|
committer | David E. O'Brien <obrien@FreeBSD.org> | 2000-03-27 00:33:45 +0000 |
commit | b787589098ac28fb0612b60dc4da43a730356b33 (patch) | |
tree | 12539afbdeb7aee71e57e278f42a7e7e7e0be089 /lib/libkvm/kvm_proc.c | |
parent | ba5d95967f46574aafff2542910d39c2aaf7ac28 (diff) | |
download | src-b787589098ac28fb0612b60dc4da43a730356b33.tar.gz src-b787589098ac28fb0612b60dc4da43a730356b33.zip |
-Wall, which caught a real bug where buflen wasn't being set properly.
Notes
Notes:
svn path=/head/; revision=58642
Diffstat (limited to 'lib/libkvm/kvm_proc.c')
-rw-r--r-- | lib/libkvm/kvm_proc.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/lib/libkvm/kvm_proc.c b/lib/libkvm/kvm_proc.c index 3490bd42f8d5..9467637b76f8 100644 --- a/lib/libkvm/kvm_proc.c +++ b/lib/libkvm/kvm_proc.c @@ -668,7 +668,8 @@ kvm_getargv(kd, kp, nchr) int nchr; { int oid[4]; - int i, l; + int i; + size_t bufsz; static int buflen; static char *buf, *p; static char **bufp; @@ -681,11 +682,11 @@ kvm_getargv(kd, kp, nchr) } if (!buflen) { - l = sizeof(buflen); + bufsz = sizeof(buflen); i = sysctlbyname("kern.ps_arg_cache_limit", - &buflen, &l, NULL, 0); + &buflen, &bufsz, NULL, 0); if (i == -1) { - buflen == 0; + buflen = 0; } else { buf = malloc(buflen); if (buf == NULL) @@ -699,9 +700,9 @@ kvm_getargv(kd, kp, nchr) oid[1] = KERN_PROC; oid[2] = KERN_PROC_ARGS; oid[3] = kp->kp_proc.p_pid; - l = buflen; - i = sysctl(oid, 4, buf, &l, 0, 0); - if (i == 0 && l > 0) { + bufsz = buflen; + i = sysctl(oid, 4, buf, &bufsz, 0, 0); + if (i == 0 && bufsz > 0) { i = 0; p = buf; do { @@ -712,7 +713,7 @@ kvm_getargv(kd, kp, nchr) bufp = realloc(bufp, sizeof(char *) * argc); } - } while (p < buf + l); + } while (p < buf + bufsz); bufp[i++] = 0; return (bufp); } |