ompio: fix misc memory leaks
as identified by Coverity with CIDs 72147-72149, 731275 and 1269872
Этот коммит содержится в:
родитель
58d1b3f4d0
Коммит
0f08070a1c
@ -369,6 +369,18 @@ int ompi_io_ompio_generate_current_file_view (struct mca_io_ompio_file_t *fh,
|
||||
for (i=0;i<fh->f_size;i++){
|
||||
adj_matrix[i] = (int *) malloc (fh->f_size *
|
||||
sizeof (int ));
|
||||
if (NULL == adj_matrix[i]) {
|
||||
for (j=0; j<i; j++) {
|
||||
free(adj_matrix[j]);
|
||||
}
|
||||
free(adj_matrix);
|
||||
free(sorted);
|
||||
free(all_process);
|
||||
free(per_process);
|
||||
free(recvcounts);
|
||||
free(displs);
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
}
|
||||
|
||||
for (i=0;i<fh->f_size;i++){
|
||||
@ -418,6 +430,10 @@ int ompi_io_ompio_generate_current_file_view (struct mca_io_ompio_file_t *fh,
|
||||
if (NULL == column_list){
|
||||
opal_output(1,"Error while allocating column list\n");
|
||||
fclose(fp);
|
||||
for (i=0; i<fh->f_size; i++) {
|
||||
free(adj_matrix[i]);
|
||||
}
|
||||
free(adj_matrix);
|
||||
free(sorted);
|
||||
free(all_process);
|
||||
free(per_process);
|
||||
@ -429,6 +445,10 @@ int ompi_io_ompio_generate_current_file_view (struct mca_io_ompio_file_t *fh,
|
||||
if (NULL == values){
|
||||
opal_output(1,"Error while allocating values list\n");
|
||||
fclose(fp);
|
||||
for (i=0; i<fh->f_size; i++) {
|
||||
free(adj_matrix[i]);
|
||||
}
|
||||
free(adj_matrix);
|
||||
free(column_list);
|
||||
free(sorted);
|
||||
free(all_process);
|
||||
@ -443,6 +463,10 @@ int ompi_io_ompio_generate_current_file_view (struct mca_io_ompio_file_t *fh,
|
||||
if (NULL == row_index){
|
||||
opal_output(1,"Error while allocating row_index list\n");
|
||||
fclose(fp);
|
||||
for (i=0; i<fh->f_size; i++) {
|
||||
free(adj_matrix[i]);
|
||||
}
|
||||
free(adj_matrix);
|
||||
free(values);
|
||||
free(column_list);
|
||||
free(sorted);
|
||||
@ -1253,6 +1277,7 @@ int ompi_io_ompio_distribute_file_view (mca_io_ompio_file_t *fh,
|
||||
displs = (int*) malloc (fh->f_size * sizeof (int));
|
||||
if (NULL == displs) {
|
||||
opal_output (1, "OUT OF MEMORY\n");
|
||||
free(fview_cnt);
|
||||
free(num_entries);
|
||||
free(broken_index);
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
@ -1283,6 +1308,11 @@ int ompi_io_ompio_distribute_file_view (mca_io_ompio_file_t *fh,
|
||||
opal_output (1, "OUT OF MEMORY\n");
|
||||
free(num_entries);
|
||||
free(broken_index);
|
||||
if (0 == fh->f_rank%fh->f_aggregator_index) {
|
||||
free(global_fview);
|
||||
free(displs);
|
||||
free(fview_cnt);
|
||||
}
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
@ -1299,9 +1329,11 @@ int ompi_io_ompio_distribute_file_view (mca_io_ompio_file_t *fh,
|
||||
for (j=0; j<i; j++) {
|
||||
free(broken[j]);
|
||||
}
|
||||
free(fview_cnt);
|
||||
free(displs);
|
||||
free(global_fview);
|
||||
if (0 == fh->f_rank%fh->f_aggregator_index) {
|
||||
free(global_fview);
|
||||
free(displs);
|
||||
free(fview_cnt);
|
||||
}
|
||||
free(broken);
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
@ -117,6 +117,10 @@ int mca_io_ompio_set_view_internal(mca_io_ompio_file_t *fh,
|
||||
num_groups,
|
||||
contg_groups);
|
||||
}
|
||||
for( i = 0; i < fh->f_size; i++){
|
||||
free(contg_groups[i].procs_in_contg_group);
|
||||
}
|
||||
free(contg_groups);
|
||||
|
||||
|
||||
return OMPI_SUCCESS;
|
||||
@ -467,11 +471,6 @@ int mca_io_ompio_finalize_initial_grouping(mca_io_ompio_file_t *fh,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_bcast_module);
|
||||
|
||||
if (NULL != contg_groups){
|
||||
free(contg_groups);
|
||||
contg_groups = NULL;
|
||||
}
|
||||
|
||||
return OMPI_SUCCESS;
|
||||
}
|
||||
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user