--- rpl/src/controle.c 2010/03/04 17:42:46 1.1 +++ rpl/src/controle.c 2010/03/05 11:20:08 1.2 @@ -1,7 +1,7 @@ /* ================================================================================ RPL/2 (R) version 4.0.12 - Copyright (C) 1989-2010 Dr. BERTRAND Joël + Copyright (C) 1989-2010 Dr. BERTRAND Joël This file is part of RPL/2. @@ -25,29 +25,27 @@ /* ================================================================================ - Calcul des sommes de contrôle avant le lancement d'un exécutable + Calcul des sommes de contrôle avant le lancement d'un exécutable de la famille RPL/2 (rpliconv, rplconvert, rplfile et rplpp). ================================================================================ - Entrée : - - chaîne de caractères sur le fichier à contrôler - - chaîne de caractères contenant la somme à contrôler - - type de somme de contrôle + Entrée : + - chaîne de caractères sur le fichier à contrôler + - chaîne de caractères contenant la somme à contrôler + - type de somme de contrôle -------------------------------------------------------------------------------- Sortie : drapeau -------------------------------------------------------------------------------- - Effets de bord : néant + Effets de bord : néant ================================================================================ */ - logical1 controle(struct_processus *s_etat_processus, unsigned char *fichier, unsigned char *type, unsigned char *somme_candidate) { EVP_MD_CTX contexte; - int i_rval = 0; - int in_fd = -1; + int in_fd; logical1 drapeau; @@ -64,7 +62,12 @@ controle(struct_processus *s_etat_proces unsigned int i; unsigned int longueur_somme; - i_rval = stat(fichier, &stat_buf); + if (stat(fichier, &stat_buf) != 0) + { + (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; + return(d_faux); + } + taille_fichier = stat_buf.st_size; if ((chaine = malloc(taille_fichier)) == NULL) @@ -150,6 +153,10 @@ controle(struct_processus *s_etat_proces return(d_faux); } } + else + { + return(d_faux); + } EVP_MD_CTX_cleanup(&contexte); free(chaine);