opal/hwloc: fix misc memory leaks
as reported by Coverity with CIDS 710631-710638, 1196705, 1196716, 1196717, 1196752, 1196753
Этот коммит содержится в:
родитель
8dd77c692e
Коммит
c25185f3a9
@ -548,6 +548,8 @@ int opal_hwloc_base_set_binding_policy(opal_binding_policy_t *policy, char *spec
|
||||
} else {
|
||||
/* unknown option */
|
||||
opal_output(0, "Unknown qualifier to binding policy: %s", spec);
|
||||
opal_argv_free(quals);
|
||||
opal_argv_free(tmpvals);
|
||||
return OPAL_ERR_BAD_PARAM;
|
||||
}
|
||||
}
|
||||
|
@ -159,6 +159,9 @@ int opal_hwloc_base_filter_cpus(hwloc_topology_t topo)
|
||||
if (NULL == (pu = opal_hwloc_base_get_pu(topo, cpu, OPAL_HWLOC_LOGICAL))) {
|
||||
opal_argv_free(ranges);
|
||||
opal_argv_free(range);
|
||||
hwloc_bitmap_free(avail);
|
||||
hwloc_bitmap_free(res);
|
||||
hwloc_bitmap_free(pucpus);
|
||||
return OPAL_ERR_SILENT;
|
||||
}
|
||||
hwloc_bitmap_and(pucpus, pu->online_cpuset, pu->allowed_cpuset);
|
||||
@ -174,6 +177,8 @@ int opal_hwloc_base_filter_cpus(hwloc_topology_t topo)
|
||||
opal_argv_free(ranges);
|
||||
opal_argv_free(range);
|
||||
hwloc_bitmap_free(avail);
|
||||
hwloc_bitmap_free(res);
|
||||
hwloc_bitmap_free(pucpus);
|
||||
return OPAL_ERR_SILENT;
|
||||
}
|
||||
hwloc_bitmap_and(pucpus, pu->online_cpuset, pu->allowed_cpuset);
|
||||
@ -182,6 +187,11 @@ int opal_hwloc_base_filter_cpus(hwloc_topology_t topo)
|
||||
}
|
||||
break;
|
||||
default:
|
||||
hwloc_bitmap_free(avail);
|
||||
hwloc_bitmap_free(res);
|
||||
hwloc_bitmap_free(pucpus);
|
||||
opal_argv_free(ranges);
|
||||
opal_argv_free(range);
|
||||
return OPAL_ERR_BAD_PARAM;
|
||||
}
|
||||
opal_argv_free(range);
|
||||
@ -1147,6 +1157,9 @@ static int socket_core_to_cpu_set(char *socket_core_list,
|
||||
if (NULL == (core = df_search(topo, socket, obj_type, 0,
|
||||
core_id, OPAL_HWLOC_AVAILABLE,
|
||||
&idx, NULL))) {
|
||||
opal_argv_free(list);
|
||||
opal_argv_free(range);
|
||||
opal_argv_free(socket_core);
|
||||
return OPAL_ERR_NOT_FOUND;
|
||||
}
|
||||
/* get the cpus */
|
||||
@ -1168,6 +1181,8 @@ static int socket_core_to_cpu_set(char *socket_core_list,
|
||||
if (NULL == (core = df_search(topo, socket, obj_type, 0,
|
||||
core_id, OPAL_HWLOC_AVAILABLE,
|
||||
&idx, NULL))) {
|
||||
opal_argv_free(range);
|
||||
opal_argv_free(socket_core);
|
||||
return OPAL_ERR_NOT_FOUND;
|
||||
}
|
||||
/* get the cpus */
|
||||
@ -1289,6 +1304,7 @@ int opal_hwloc_base_slot_list_parse(const char *slot_str,
|
||||
opal_argv_free(range);
|
||||
opal_argv_free(item);
|
||||
opal_argv_free(rngs);
|
||||
opal_argv_free(list);
|
||||
return OPAL_ERR_SILENT;
|
||||
}
|
||||
/* get the available cpus for that object */
|
||||
@ -1324,6 +1340,7 @@ int opal_hwloc_base_slot_list_parse(const char *slot_str,
|
||||
return OPAL_ERROR;
|
||||
}
|
||||
}
|
||||
opal_argv_free(range);
|
||||
opal_argv_free(rngs);
|
||||
}
|
||||
}
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user