aboutsummaryrefslogtreecommitdiff
path: root/lib/libkvm/kvm_proc.c
diff options
context:
space:
mode:
authorDavid E. O'Brien <obrien@FreeBSD.org>2000-03-27 00:33:45 +0000
committerDavid E. O'Brien <obrien@FreeBSD.org>2000-03-27 00:33:45 +0000
commitb787589098ac28fb0612b60dc4da43a730356b33 (patch)
tree12539afbdeb7aee71e57e278f42a7e7e7e0be089 /lib/libkvm/kvm_proc.c
parentba5d95967f46574aafff2542910d39c2aaf7ac28 (diff)
downloadsrc-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.c17
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);
}