svn commit: r186339 - releng/7.1/lib/libutil
Joe Marcus Clarke
marcus at FreeBSD.org
Fri Dec 19 20:22:56 UTC 2008
Author: marcus (doc,ports committer)
Date: Fri Dec 19 20:22:55 2008
New Revision: 186339
URL: http://svn.freebsd.org/changeset/base/186339
Log:
MFC r186314:
Initialize the cntp pointer to 0 prior to doing any work so that callers
don't try to iterate through garbage or NULL memory. Additionally, return
NULL instead of 0 on error.
Approved by: re (kib)
Modified:
releng/7.1/lib/libutil/kinfo_getfile.c
releng/7.1/lib/libutil/kinfo_getvmmap.c
Modified: releng/7.1/lib/libutil/kinfo_getfile.c
==============================================================================
--- releng/7.1/lib/libutil/kinfo_getfile.c Fri Dec 19 20:20:50 2008 (r186338)
+++ releng/7.1/lib/libutil/kinfo_getfile.c Fri Dec 19 20:22:55 2008 (r186339)
@@ -19,6 +19,7 @@ kinfo_getfile(pid_t pid, int *cntp)
char *buf, *bp, *eb;
struct kinfo_file *kif, *kp, *kf;
+ *cntp = 0;
len = 0;
mib[0] = CTL_KERN;
mib[1] = KERN_PROC;
@@ -27,15 +28,15 @@ kinfo_getfile(pid_t pid, int *cntp)
error = sysctl(mib, 4, NULL, &len, NULL, 0);
if (error)
- return (0);
+ return (NULL);
len = len * 4 / 3;
buf = malloc(len);
if (buf == NULL)
- return (0);
+ return (NULL);
error = sysctl(mib, 4, buf, &len, NULL, 0);
if (error) {
free(buf);
- return (0);
+ return (NULL);
}
/* Pass 1: count items */
cnt = 0;
@@ -50,7 +51,7 @@ kinfo_getfile(pid_t pid, int *cntp)
kif = calloc(cnt, sizeof(*kif));
if (kif == NULL) {
free(buf);
- return (0);
+ return (NULL);
}
bp = buf;
eb = buf + len;
Modified: releng/7.1/lib/libutil/kinfo_getvmmap.c
==============================================================================
--- releng/7.1/lib/libutil/kinfo_getvmmap.c Fri Dec 19 20:20:50 2008 (r186338)
+++ releng/7.1/lib/libutil/kinfo_getvmmap.c Fri Dec 19 20:22:55 2008 (r186339)
@@ -19,6 +19,7 @@ kinfo_getvmmap(pid_t pid, int *cntp)
char *buf, *bp, *eb;
struct kinfo_vmentry *kiv, *kp, *kv;
+ *cntp = 0;
len = 0;
mib[0] = CTL_KERN;
mib[1] = KERN_PROC;
@@ -27,15 +28,15 @@ kinfo_getvmmap(pid_t pid, int *cntp)
error = sysctl(mib, 4, NULL, &len, NULL, 0);
if (error)
- return (0);
+ return (NULL);
len = len * 4 / 3;
buf = malloc(len);
if (buf == NULL)
- return (0);
+ return (NULL);
error = sysctl(mib, 4, buf, &len, NULL, 0);
if (error) {
free(buf);
- return (0);
+ return (NULL);
}
/* Pass 1: count items */
cnt = 0;
@@ -50,7 +51,7 @@ kinfo_getvmmap(pid_t pid, int *cntp)
kiv = calloc(cnt, sizeof(*kiv));
if (kiv == NULL) {
free(buf);
- return (0);
+ return (NULL);
}
bp = buf;
eb = buf + len;
More information about the svn-src-all
mailing list