Diff for /rpl/src/controle.c between versions 1.22 and 1.69

version 1.22, 2011/06/20 17:54:14 version 1.69, 2020/01/10 11:15:41
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.0.prerelease.1    RPL/2 (R) version 4.1.32
   Copyright (C) 1989-2011 Dr. BERTRAND Joël    Copyright (C) 1989-2020 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 43  logical1 Line 43  logical1
 controle(struct_processus *s_etat_processus, unsigned char *fichier,  controle(struct_processus *s_etat_processus, unsigned char *fichier,
         unsigned char *type, unsigned char *somme_candidate)          unsigned char *type, unsigned char *somme_candidate)
 {  {
     EVP_MD_CTX          contexte;      EVP_MD_CTX          *contexte;
   
     int                 in_fd;      int                 in_fd;
   
Line 91  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 117  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 130  controle(struct_processus *s_etat_proces Line 131  controle(struct_processus *s_etat_proces
   
     close(in_fd);      close(in_fd);
   
       if ((contexte = EVP_MD_CTX_new()) == NULL)
       {
           close(in_fd);
           return(d_faux);
       }
   
     if (strcmp(type, "md5") == 0)      if (strcmp(type, "md5") == 0)
     {      {
         if (EVP_DigestInit(&contexte, EVP_md5()) != 1)          if (EVP_DigestInit(contexte, EVP_md5()) != 1)
         {          {
               EVP_MD_CTX_free(contexte);
             close(in_fd);              close(in_fd);
             free(chaine);              free(chaine);
   
Line 141  controle(struct_processus *s_etat_proces Line 149  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)
         {          {
               EVP_MD_CTX_free(contexte);
             close(in_fd);              close(in_fd);
             free(chaine);              free(chaine);
   
Line 150  controle(struct_processus *s_etat_proces Line 159  controle(struct_processus *s_etat_proces
             return(d_faux);              return(d_faux);
         }          }
   
         if (EVP_DigestFinal_ex(&contexte, somme, &longueur_somme) != 1)          if (EVP_DigestFinal_ex(contexte, somme, &longueur_somme) != 1)
         {          {
               EVP_MD_CTX_free(contexte);
             close(in_fd);              close(in_fd);
             free(chaine);              free(chaine);
   
Line 161  controle(struct_processus *s_etat_proces Line 171  controle(struct_processus *s_etat_proces
     }      }
     else if (strcmp(type, "sha1") == 0)      else if (strcmp(type, "sha1") == 0)
     {      {
         if (EVP_DigestInit(&contexte, EVP_sha1()) != 1)          if (EVP_DigestInit(contexte, EVP_sha1()) != 1)
         {          {
               EVP_MD_CTX_free(contexte);
             close(in_fd);              close(in_fd);
             free(chaine);              free(chaine);
   
Line 170  controle(struct_processus *s_etat_proces Line 181  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)
         {          {
               EVP_MD_CTX_free(contexte);
             close(in_fd);              close(in_fd);
             free(chaine);              free(chaine);
   
Line 179  controle(struct_processus *s_etat_proces Line 191  controle(struct_processus *s_etat_proces
             return(d_faux);              return(d_faux);
         }          }
   
         if (EVP_DigestFinal_ex(&contexte, somme, &longueur_somme) != 1)          if (EVP_DigestFinal_ex(contexte, somme, &longueur_somme) != 1)
         {          {
               EVP_MD_CTX_free(contexte);
             close(in_fd);              close(in_fd);
             free(chaine);              free(chaine);
   
Line 193  controle(struct_processus *s_etat_proces Line 206  controle(struct_processus *s_etat_proces
         return(d_faux);          return(d_faux);
     }      }
   
     EVP_MD_CTX_cleanup(&contexte);      EVP_MD_CTX_free(contexte);
     free(chaine);      free(chaine);
   
     for(i = 0; i < longueur_somme; i++)      for(i = 0; i < longueur_somme; i++)

Removed from v.1.22  
changed lines
  Added in v.1.69


CVSweb interface <joel.bertrand@systella.fr>