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

version 1.54, 2015/02/19 11:01:18 version 1.69, 2020/01/10 11:15:41
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.21    RPL/2 (R) version 4.1.32
   Copyright (C) 1989-2015 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 131  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 142  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, (size_t) 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 151  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 162  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 171  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, (size_t) 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 180  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 194  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.54  
changed lines
  Added in v.1.69


CVSweb interface <joel.bertrand@systella.fr>