--- rpl/src/rpl.c 2015/01/08 14:29:52 1.164 +++ rpl/src/rpl.c 2015/01/27 14:18:09 1.165 @@ -132,7 +132,7 @@ rplinit(int argc, char *argv[], char *en setvbuf(stdout, NULL, _IOLBF, 0); setvbuf(stderr, NULL, _IOLBF, 0); - if ((s_etat_processus = malloc(sizeof(struct_processus))) == NULL) + if ((s_etat_processus = sys_malloc(sizeof(struct_processus))) == NULL) { erreur = d_es_allocation_memoire; @@ -182,6 +182,29 @@ rplinit(int argc, char *argv[], char *en return(EXIT_FAILURE); } + if (initialisation_etat_processus_readline() != 0) + { + erreur = d_es_allocation_memoire; + + if ((langue = getenv("LANG")) != NULL) + { + if (strncmp(langue, "fr", 2) == 0) + { + uprintf("+++Système : Mémoire insuffisante\n"); + } + else + { + uprintf("+++System : Not enough memory\n"); + } + } + else + { + uprintf("+++System : Not enough memory\n"); + } + + return(EXIT_FAILURE); + } + if ((langue = getenv("LANG")) != NULL) { (*s_etat_processus).langue = (strncmp(langue, "fr", 2) == 0) @@ -1992,8 +2015,9 @@ rplinit(int argc, char *argv[], char *en } if (((*s_etat_processus).definitions_chainees = - compactage((*s_etat_processus) - .definitions_chainees)) == NULL) + compactage(s_etat_processus, + (*s_etat_processus).definitions_chainees)) + == NULL) { # ifndef SEMAPHORES_NOMMES sem_post(&((*s_etat_processus).semaphore_fork)); @@ -5729,8 +5753,9 @@ rplinit(int argc, char *argv[], char *en free(arg_exec); arret_thread_signaux(s_etat_processus); + liberation_etat_processus_readline(); liberation_allocateur_buffer(s_etat_processus); - free(s_etat_processus); + sys_free(s_etat_processus); # ifdef DEBUG_MEMOIRE debug_memoire_verification(); @@ -5856,7 +5881,7 @@ controle_integrite(struct_processus *s_e unsigned char * -date_compilation() +date_compilation(struct_processus *s_etat_processus) { unsigned char *date;