Initialize procs closer to the place were it is used.

Free can properly handle NULL pointer (but keep free() call on the premise
that the code might be reused).
Show errno when realloc failed.

MFC after:	3 days
This commit is contained in:
kib 2012-06-30 16:20:01 +00:00
parent d339b71305
commit 2398425887

View File

@ -90,7 +90,7 @@ nosig(char *name)
int
main(int ac, char **av)
{
struct kinfo_proc *procs = NULL, *newprocs;
struct kinfo_proc *procs, *newprocs;
struct stat sb;
struct passwd *pw;
regex_t rgx;
@ -292,14 +292,14 @@ main(int ac, char **av)
miblen = 4;
}
procs = NULL;
st = sysctl(mib, miblen, NULL, &size, NULL, 0);
do {
size += size / 10;
newprocs = realloc(procs, size);
if (newprocs == 0) {
if (procs)
free(procs);
errx(1, "could not reallocate memory");
if (newprocs == NULL) {
free(procs);
err(1, "could not reallocate memory");
}
procs = newprocs;
st = sysctl(mib, miblen, procs, &size, NULL, 0);