From ca895af355cc98dfba4bacf82bda6174b96b8509 Mon Sep 17 00:00:00 2001 From: Andriy Gapon Date: Sat, 6 Oct 2012 20:16:04 +0000 Subject: [PATCH] kvm_getprocs: gracefully handle errors from kvm_deadprocs and don't confuse callers with incorrect return value MFC after: 9 days --- lib/libkvm/kvm_proc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/libkvm/kvm_proc.c b/lib/libkvm/kvm_proc.c index d1daf77ef8f..31258d7a09b 100644 --- a/lib/libkvm/kvm_proc.c +++ b/lib/libkvm/kvm_proc.c @@ -593,9 +593,15 @@ liveout: nprocs = kvm_deadprocs(kd, op, arg, nl[1].n_value, nl[2].n_value, nprocs); + if (nprocs <= 0) { + _kvm_freeprocs(kd); + nprocs = 0; + } #ifdef notdef - size = nprocs * sizeof(struct kinfo_proc); - (void)realloc(kd->procbase, size); + else { + size = nprocs * sizeof(struct kinfo_proc); + kd->procbase = realloc(kd->procbase, size); + } #endif } *cnt = nprocs;