2010-03-24 4 views
0

Je reçois cette erreur chaque fois que j'appelle gethostbyname() dans mon code C.gethostbyname() et valgrind

==7983== Invalid read of size 1 
==7983== at 0x412AB2C: ____strtoul_l_internal (strtol_l.c:298) 
==7983== by 0x412A46F: strtoul (strtol.c:110) 
==7983== by 0x41D427E: inet_aton (inet_addr.c:143) 
==7983== by 0x41D8FF3: __nss_hostname_digits_dots (digits_dots.c:144) 
==7983== by 0x41DD0F9: gethostbyname (getXXbyYY.c:109) 
==7983== by 0x804BE6F: connexion_function (in ***************) 
==7983== by 0x8049A8F: main (in ***************) 

Des idées? Merci,

+1

Quels arguments donnez-vous à gethostbyname et comment les initialisez-vous? – ypnos

+0

merci ypnos, je vais juste utiliser getaddrinfo() à la place ... – Zenet

Répondre

1

Cela peut être lié au fait que gethostbyname est non-réentrant et retourne un objet qui est partagé par tous les threads. Vous devriez probablement utiliser getaddrinfo et freeaddrinfo au lieu de gethostbyname.