Diff for /rpl/src/controle.c between versions 1.12 and 1.54

version 1.12, 2010/08/13 21:00:36 version 1.54, 2015/02/19 11:01:18
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.18    RPL/2 (R) version 4.1.21
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2015 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 56  controle(struct_processus *s_etat_proces Line 56  controle(struct_processus *s_etat_proces
     struct stat         stat_buf;      struct stat         stat_buf;
   
     unsigned char       *chaine;      unsigned char       *chaine;
       unsigned char       *registre;
     unsigned char       somme[EVP_MAX_MD_SIZE];      unsigned char       somme[EVP_MAX_MD_SIZE];
     unsigned char       somme_hexadecimale[2 * EVP_MAX_MD_SIZE];      unsigned char       somme_hexadecimale[2 * EVP_MAX_MD_SIZE];
   
     unsigned int        i;      unsigned int        i;
     unsigned int        longueur_somme;      unsigned int        longueur_somme;
   
       registre = fichier;
   
 #   ifdef OS2  #   ifdef OS2
     unsigned char       *tampon;      unsigned char       *tampon;
   
Line 88  controle(struct_processus *s_etat_proces Line 91  controle(struct_processus *s_etat_proces
   
     taille_fichier = stat_buf.st_size;      taille_fichier = stat_buf.st_size;
   
     if ((chaine = malloc(taille_fichier)) == NULL)      if ((chaine = malloc((size_t) taille_fichier)) == NULL)
     {      {
 #       ifdef OS2  #       ifdef OS2
         free(fichier);          free(fichier);
Line 114  controle(struct_processus *s_etat_proces Line 117  controle(struct_processus *s_etat_proces
     free(fichier);      free(fichier);
 #   endif  #   endif
   
     if ((octets_lus = read(in_fd, chaine, taille_fichier)) != taille_fichier)      if ((octets_lus = read(in_fd, chaine, (size_t) taille_fichier))
               != (ssize_t) taille_fichier)
     {      {
 #       ifndef OS2  #       ifndef OS2
         close(in_fd);          close(in_fd);
Line 138  controle(struct_processus *s_etat_proces Line 142  controle(struct_processus *s_etat_proces
             return(d_faux);              return(d_faux);
         }          }
   
         if (EVP_DigestUpdate(&contexte, chaine, taille_fichier) != 1)          if (EVP_DigestUpdate(&contexte, chaine, (size_t) taille_fichier) != 1)
         {          {
             close(in_fd);              close(in_fd);
             free(chaine);              free(chaine);
Line 167  controle(struct_processus *s_etat_proces Line 171  controle(struct_processus *s_etat_proces
             return(d_faux);              return(d_faux);
         }          }
   
         if (EVP_DigestUpdate(&contexte, chaine, taille_fichier) != 1)          if (EVP_DigestUpdate(&contexte, chaine, (size_t) taille_fichier) != 1)
         {          {
             close(in_fd);              close(in_fd);
             free(chaine);              free(chaine);
Line 204  controle(struct_processus *s_etat_proces Line 208  controle(struct_processus *s_etat_proces
     }      }
     else      else
     {      {
           if ((*s_etat_processus).langue == 'F')
           {
               printf("+++Fatal : Somme de contrôle invalide\n");
               printf("Fonction %s(%s)\n", type, registre);
               printf("Résultat obtenu  : %s\n", somme_hexadecimale);
               printf("Résultat attendu : %s\n", somme_candidate);
           }
           else
           {
               printf("+++Fatal : Hash code mismatch\n");
               printf("Function %s(%s)\n", type, registre);
               printf("Computed hash code : %s\n", somme_hexadecimale);
               printf("Expected hash code : %s\n", somme_candidate);
           }
   
         drapeau = d_faux;          drapeau = d_faux;
     }      }
   

Removed from v.1.12  
changed lines
  Added in v.1.54


CVSweb interface <joel.bertrand@systella.fr>