Changeset 40595b


Ignore:
Timestamp:
11/01/08 22:45:33 (5 years ago)
Author:
Pavan Balaji <balaji@…>
Branches:
master
Children:
acffea
Parents:
a4b568
Message:

[svn-r3437] Fixed several memory leaks.

Location:
src/pm/hydra
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • src/pm/hydra/bootstrap/ssh/ssh_launch.c

    ra4b568 r40595b  
    103103            } 
    104104 
     105            for (arg = 0; client_arg[arg]; arg++) 
     106                HYDU_FREE(client_arg[arg]); 
     107 
    105108            /* For the remaining processes, set the stdin fd to -1 */ 
    106109            if (process_id != 0) 
     
    114117 
    115118  fn_exit: 
    116     for (arg = 0; client_arg[arg]; arg++) 
    117         HYDU_FREE(client_arg[arg]); 
    118119    HYDU_FREE(client_arg); 
    119120 
     
    177178                goto fn_fail; 
    178179            } 
     180 
     181            for (arg = 0; client_arg[arg]; arg++) 
     182                HYDU_FREE(client_arg[arg]); 
    179183        } 
    180184 
     
    183187 
    184188  fn_exit: 
    185     for (arg = 0; client_arg[arg]; arg++) 
    186         HYDU_FREE(client_arg[arg]); 
    187189    HYDU_FREE(client_arg); 
    188190 
  • src/pm/hydra/bootstrap/utils/bscu_spawn.c

    ra4b568 r40595b  
    271271        else if (env->env_type == HYDU_ENV_AUTOINC) { 
    272272            HYDU_Int_to_str(env->start_val + id, inc, status); 
    273             tmp[j++] = inc; 
     273            tmp[j++] = MPIU_Strdup(inc); 
     274            HYDU_FREE(inc); 
    274275        } 
    275276 
    276277        tmp[j++] = NULL; 
    277278        HYDU_STR_ALLOC_AND_JOIN(tmp, envstr, status); 
    278         client_arg[i++] = envstr; 
     279        client_arg[i++] = MPIU_Strdup(envstr); 
     280        HYDU_FREE(envstr); 
     281        for (j = 0; tmp[j]; j++) 
     282            HYDU_FREE(tmp[j]); 
    279283 
    280284        client_arg[i++] = MPIU_Strdup(";"); 
  • src/pm/hydra/include/hydra_env.h

    r26b0c6 r40595b  
    3232HYD_Status HYDU_Create_env(HYDU_Env_t ** env, char *env_name, char *env_value, 
    3333                           HYDU_Env_type_t env_type, int start); 
     34HYD_Status HYDU_Free_env(HYDU_Env_t * env); 
    3435HYD_Status HYDU_Free_env_list(HYDU_Env_t * env); 
    3536 
  • src/pm/hydra/launcher/mpiexec/utils.c

    ra4b568 r40595b  
    405405    /* If wdir is not set, use the current one */ 
    406406    if (csi_handle.wdir == NULL) { 
    407         csi_handle.wdir = MPIU_Strdup(getcwd(NULL, 0)); 
     407        csi_handle.wdir = getcwd(NULL, 0); 
    408408    } 
    409409 
  • src/pm/hydra/launcher/utils/lchu.c

    ra4b568 r40595b  
    5353                proc_params->total_num_procs += num_procs; 
    5454            } 
     55 
     56            fclose(fp); 
    5557        } 
    5658        proc_params = proc_params->next; 
     
    9294                } 
    9395            } 
     96 
     97            fclose(fp); 
    9498        } 
    9599        proc_params = proc_params->next; 
     
    122126            HYDU_FREE(proc_params->total_proc_list[i]); 
    123127        HYDU_FREE(proc_params->total_proc_list); 
     128        HYDU_FREE(proc_params->total_core_list); 
    124129        HYDU_FREE(proc_params->host_file); 
    125130        proc_params = proc_params->next; 
     
    194199 
    195200    HYDU_Free_env_list(csi_handle.global_env); 
     201    HYDU_Free_env_list(csi_handle.system_env); 
    196202    HYDU_Free_env_list(csi_handle.user_env); 
    197203    HYDU_Free_env_list(csi_handle.prop_env); 
  • src/pm/hydra/pm/central/central_cb.c

    ra4b568 r40595b  
    155155 
    156156  fn_exit: 
     157    HYDU_FREE(buf); 
    157158    HYDU_FUNC_EXIT(); 
    158159    return status; 
  • src/pm/hydra/pm/central/central_launch.c

    ra4b568 r40595b  
    123123        goto fn_fail; 
    124124    } 
    125     HYDU_FREE(env); 
     125    HYDU_Free_env(env); 
    126126 
    127127    status = HYDU_Create_env(&env, "PMI_ID", NULL, HYDU_ENV_AUTOINC, 0); 
     
    135135        goto fn_fail; 
    136136    } 
    137     HYDU_FREE(env); 
     137    HYDU_Free_env(env); 
    138138    HYDU_FREE(port_str); 
    139139 
  • src/pm/hydra/pm/utils/pmi.c

    ra4b568 r40595b  
    472472    HYD_PMCU_pmi_process_t *process; 
    473473    HYD_PMCU_pmi_kvs_pair_t *key_pair, *run; 
    474     char *kvsname, *key, *val; 
     474    char *kvsname, *key, *val, *key_pair_str = NULL; 
    475475    char *tmp[HYDU_NUM_JOIN_STR], *cmd; 
    476476    HYD_Status status = HYD_SUCCESS; 
     
    516516            if (!strcmp(run->key, key_pair->key)) { 
    517517                tmp[i++] = "-1 msg=duplicate_key"; 
    518                 tmp[i++] = MPIU_Strdup(key_pair->key); 
     518                key_pair_str = MPIU_Strdup(key_pair->key); 
     519                tmp[i++] = key_pair_str; 
    519520                break; 
    520521            } 
     
    534535    } 
    535536    HYDU_FREE(cmd); 
     537    HYDU_FREE(key_pair_str); 
    536538 
    537539  fn_exit: 
     
    554556    HYD_PMCU_pmi_kvs_pair_t *run; 
    555557    char *kvsname, *key; 
    556     char *tmp[HYDU_NUM_JOIN_STR], *cmd; 
     558    char *tmp[HYDU_NUM_JOIN_STR], *cmd, *key_val_str; 
    557559    HYD_Status status = HYD_SUCCESS; 
    558560 
     
    591593            if (!strcmp(run->key, key)) { 
    592594                tmp[i++] = "0 msg=success value="; 
    593                 tmp[i++] = MPIU_Strdup(run->val); 
     595                key_val_str = MPIU_Strdup(run->val); 
     596                tmp[i++] = key_val_str; 
    594597                break; 
    595598            } 
     
    612615    } 
    613616    HYDU_FREE(cmd); 
     617    HYDU_FREE(key_val_str); 
    614618 
    615619  fn_exit: 
     
    671675    i = 0; 
    672676    tmp[i++] = "cmd=universe_size size="; 
    673     tmp[i++] = MPIU_Strdup(usize_str); 
     677    tmp[i++] = usize_str; 
    674678    tmp[i++] = "\n"; 
    675679    tmp[i++] = NULL; 
     
    682686    } 
    683687    HYDU_FREE(cmd); 
    684  
    685     HYDU_FREE(usize_str); 
    686688 
    687689  fn_exit: 
     
    738740        key_pair = tmp; 
    739741    } 
     742    HYDU_FREE(kvs_list); 
    740743 
    741744  fn_exit: 
  • src/pm/hydra/utils/env/env.c

    r26b0c6 r40595b  
    3333        env->env_value = env_value ? MPIU_Strdup(env_value) : NULL; 
    3434        env->env_type = HYDU_ENV_STATIC; 
     35        HYDU_FREE(env_str); 
    3536 
    3637        status = HYDU_Add_env_to_list(env_list, *env); 
     
    3940            goto fn_fail; 
    4041        } 
    41         HYDU_FREE(env); 
     42        HYDU_Free_env(env); 
    4243 
    4344        i++; 
     
    236237#undef FUNCNAME 
    237238#endif /* FUNCNAME */ 
     239#define FUNCNAME "HYDU_Free_env" 
     240HYD_Status HYDU_Free_env(HYDU_Env_t * env) 
     241{ 
     242    HYD_Status status = HYD_SUCCESS; 
     243 
     244    HYDU_FUNC_ENTER(); 
     245 
     246    if (env->env_name) 
     247        HYDU_FREE(env->env_name); 
     248    if (env->env_value) 
     249        HYDU_FREE(env->env_value); 
     250    HYDU_FREE(env); 
     251 
     252  fn_exit: 
     253    HYDU_FUNC_EXIT(); 
     254    return status; 
     255 
     256  fn_fail: 
     257    goto fn_exit; 
     258} 
     259 
     260 
     261#if defined FUNCNAME 
     262#undef FUNCNAME 
     263#endif /* FUNCNAME */ 
    238264#define FUNCNAME "HYDU_Free_env_list" 
    239265HYD_Status HYDU_Free_env_list(HYDU_Env_t * env) 
     
    247273    while (run) { 
    248274        tmp = run->next; 
    249         HYDU_FREE(run->env_name); 
    250         HYDU_FREE(run->env_value); 
    251         HYDU_FREE(run); 
     275        HYDU_Free_env(run); 
    252276        run = tmp; 
    253277    } 
Note: See TracChangeset for help on using the changeset viewer.