server: Store the actual process count in snapshots.
We can't rely on running_processes for that, since it now also counts
processes waiting for SIGKILL and those aren't included in snapshots.
diff --git a/server/process.c b/server/process.c
index 733b1c5..b36ca37 100644
--- a/server/process.c
+++ b/server/process.c
@@ -733,6 +733,7 @@
{
struct process_snapshot *snapshot, *ptr;
struct process *process;
+
if (!running_processes) return NULL;
if (!(snapshot = mem_alloc( sizeof(*snapshot) * running_processes )))
return NULL;
@@ -748,7 +749,12 @@
grab_object( process );
ptr++;
}
- *count = running_processes;
+
+ if (!(*count = ptr - snapshot))
+ {
+ free( snapshot );
+ snapshot = NULL;
+ }
return snapshot;
}