Commit 77cffaac authored by Hisham Muhammad's avatar Hisham Muhammad
Browse files

Merge pull request #334 from mmcco/cpu

Plug mem leak, improve CPU enumeration logic
parents be9edc5d 198592a0
......@@ -48,14 +48,16 @@ static long fscale;
ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList, uid_t userId) {
int mib[] = { CTL_HW, HW_NCPU };
int fmib[] = { CTL_KERN, KERN_FSCALE };
int i;
int i, e;
OpenBSDProcessList* fpl = calloc(1, sizeof(OpenBSDProcessList));
ProcessList* pl = (ProcessList*) fpl;
size_t size = sizeof(pl->cpuCount);
ProcessList_init(pl, Class(OpenBSDProcess), usersTable, pidWhiteList, userId);
pl->cpuCount = 1; // default to 1 on sysctl() error
(void)sysctl(mib, 2, &pl->cpuCount, &size, NULL, 0);
e = sysctl(mib, 2, &pl->cpuCount, &size, NULL, 0);
if (e == -1 || pl->cpuCount < 1) {
pl->cpuCount = 1;
}
fpl->cpus = realloc(fpl->cpus, pl->cpuCount * sizeof(CPUData));
size = sizeof(fscale);
......@@ -80,6 +82,8 @@ void ProcessList_delete(ProcessList* this) {
const OpenBSDProcessList* fpl = (OpenBSDProcessList*) this;
if (fpl->kd) kvm_close(fpl->kd);
free(fpl->cpus);
ProcessList_done(this);
free(this);
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment