summaryrefslogtreecommitdiffstats
path: root/lib/libkvm/kvm_proc.c
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2000-03-27 00:33:45 +0000
committerobrien <obrien@FreeBSD.org>2000-03-27 00:33:45 +0000
commitcc0616800225dc2d8403e0806d336593dea95294 (patch)
treef9a8ba7282cf2254581ee6781234f418d34d6040 /lib/libkvm/kvm_proc.c
parentf6f3b06726915e6ff5f492df69aafb8e1847cec9 (diff)
downloadFreeBSD-src-cc0616800225dc2d8403e0806d336593dea95294.zip
FreeBSD-src-cc0616800225dc2d8403e0806d336593dea95294.tar.gz
-Wall, which caught a real bug where buflen wasn't being set properly.
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 3490bd4..9467637 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);
}
OpenPOWER on IntegriCloud