--- rpl/src/instructions_c4.c 2010/03/04 17:42:46 1.5 +++ rpl/src/instructions_c4.c 2010/03/05 11:20:08 1.6 @@ -472,6 +472,7 @@ instruction_convert(struct_processus *s_ struct_objet *s_objet_argument_3; unsigned char *commande; + unsigned char *executable_candidat; unsigned char ligne[1024 + 1]; unsigned char *tampon_instruction; @@ -560,6 +561,29 @@ instruction_convert(struct_processus *s_ sprintf(commande, ds_rplconvert_commande, d_exec_path, d_exec_path, (unsigned char *) (*s_objet_argument_2).objet, (unsigned char *) (*s_objet_argument_1).objet); + + if (alsprintf(&executable_candidat, "%s/bin/rplconvert", + d_exec_path) < 0) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return; + } + + if (controle(s_etat_processus, executable_candidat, "md5", + rplconvert_md5) != d_vrai) + { + (*s_etat_processus).erreur_systeme = d_es_somme_controle; + return; + } + + if (controle(s_etat_processus, executable_candidat, "sha1", + rplconvert_sha1) != d_vrai) + { + (*s_etat_processus).erreur_systeme = d_es_somme_controle; + return; + } + + free(executable_candidat); } else { @@ -579,6 +603,29 @@ instruction_convert(struct_processus *s_ (*s_etat_processus).rpl_home, (*s_etat_processus).rpl_home, (unsigned char *) (*s_objet_argument_2).objet, (unsigned char *) (*s_objet_argument_1).objet); + + if (alsprintf(&executable_candidat, "%s/bin/rplconvert", + (*s_etat_processus).rpl_home) < 0) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return; + } + + if (controle(s_etat_processus, executable_candidat, "md5", + rplconvert_md5) != d_vrai) + { + (*s_etat_processus).erreur_systeme = d_es_somme_controle; + return; + } + + if (controle(s_etat_processus, executable_candidat, "sha1", + rplconvert_sha1) != d_vrai) + { + (*s_etat_processus).erreur_systeme = d_es_somme_controle; + return; + } + + free(executable_candidat); } if ((pipe = popen(commande, "r")) == NULL)