diff options
author | obrien <obrien@FreeBSD.org> | 2000-03-27 00:33:45 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2000-03-27 00:33:45 +0000 |
commit | cc0616800225dc2d8403e0806d336593dea95294 (patch) | |
tree | f9a8ba7282cf2254581ee6781234f418d34d6040 /lib/libkvm/kvm_proc.c | |
parent | f6f3b06726915e6ff5f492df69aafb8e1847cec9 (diff) | |
download | FreeBSD-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.c | 17 |
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); } |