From 40bcb503f1a8b9885072a7dc1cb41c2cc462469c Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Sat, 30 Jun 2012 16:20:01 +0000 Subject: [PATCH] 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 --- usr.bin/killall/killall.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/usr.bin/killall/killall.c b/usr.bin/killall/killall.c index 89db399ed684..4a1d2b02b180 100644 --- a/usr.bin/killall/killall.c +++ b/usr.bin/killall/killall.c @@ -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);