Bonsoir
J'ai un problème assez facheu :
Configuartion : Ubuntu Gusty
En C/C++, je veux convertir une adresse IPv6 comme "2001:200:0:8002:203:47ff:fea5:3085" au format "utilisable" par le système. Comme pour les adresses Ipv4 j'ai décider d'utiliser la fonction inet_pton.
L'opération s'effectue très bien mais lorsque le programme se termine, la console me sort une erreur :
"
*** stack smashing detected ***: ./bin/main terminated
Aborded (core dump)
"
Et ce uniquement lorsque je veux convertir une adresse IPv6.
J'ai cherché pdt longtemps sur le net mais en vainc....
Voila mon code (pour etre sur que je fais pas une bêtise quelque part...):
(...)
char buf[50];
struct sockaddr addres;
memset(buf,'\0',50);
strcpy(buf,"192.168.0.255");
memset(&addres,0,sizeof(struct sockaddr));
addres.sa_family = AF_INET;
ret = inet_pton(AF_INET,buf,&((sockaddr_in *)&addres)->sin_addr);
memset(buf,'\0',50); strcpy(buf,"2001:200:0:8002:203:47ff:fea5:3085");
memset(&addres,0,sizeof(struct sockaddr));
addres.sa_family = AF_INET6;
ret = inet_pton(AF_INET6,buf,(unsigned char*)&((sockaddr_in6 *)&addres)->sin6_addr);
(...)
La conversion IPv4 fonctionne mais pas avec IPv6... ( l'erreur arrive tjr lorsque le programme est à la fin... )
Bref avez vous une idée ?
Merci bien