debogage fonctions OpenSSL - C++ - Programmation
Marsh Posté le 28-03-2011 à 02:54:49
En même temps tu lui fais passer un pointeur nul, et lui essaye de le déréférencer, ce qui est moyennement cool.
Fais plutôt ça:
Code :
|
Je pense que ça marchera mieux
Marsh Posté le 28-03-2011 à 11:50:49
En faisant : dh_check_ret = DH_check(dh, codes);
je déréférence le pointeur codes ? je me perd là...
Que veux tu dire par déréférencer ici ? pour moi déréférencer c'est accéder au contenu à l'adresse pointé par codes ...
Marsh Posté le 28-03-2011 à 12:04:11
ligne 8 : *ret=0;
=> ret est un argument de la fonction, mais c'est un pointeur initialisé à NULL
=> il ne référence aucune zone allouée en mémoire
Marsh Posté le 28-03-2011 à 13:49:02
D'accord. Si j'ai bien compris le principe, ceci devrais marcher alors :
int* codes;
codes = new int();
dh_check_ret = DH_check(dh, codes);
Marsh Posté le 28-03-2011 à 13:52:55
Je l'ai compilé et j'ai lancé le test est ca marche bien. Maintenant j'aimerais savoir laquelle des deux méthodes est mieux ? est ce qu'il y a une qui est recommandée dans certaines situations ... etc
Merci pour vos explications, je vois plus clair maintenant
Marsh Posté le 28-03-2011 à 14:13:59
La solution proposée par WiiDS est meilleure car dans ce cas tu n'as pas besoin de gérer l'allocation et la destruction de ta variable "codes".
Marsh Posté le 28-03-2011 à 00:55:24
Bonjour,
j'ai un programme client / serveur qui s'echangent des clefs Diffie Hellman.
La fonction DH_check(dh, codes) vérifie si les paramètres dh->p et dh->g sont correctes.
le programme fait un segmentation fault au moment de l'appel à DH_check
quand je debug ( print dh juste avant l'appel de DH_check ) , j'obtiens:
j'essaie alors d'aller plus loin pour voir ou est ce que ca plante.
J'ai fait un break point sur une fonction qui est dans la bibliothèque. ( j'ai le code source correspondant ). Cette fonction est ctx=BN_CTX_new(); Voici le code de dh_check.c d'openssl :
Est ce que quelqu'un aurait une idée de ce que je dois faire ? Je ne sais pas comment faire pour repérer la fonction qui génère une segmentation fault.
Merci d'avance pour votre aide.
[/cpp]