Conséquences catastrophiques de pthread_cancel dans cURL 8.16.0 et sa suppression

2025-09-13

cURL 8.16.0 a introduit l'utilisation de pthread_cancel pour interrompre getaddrinfo(), dans le but d'améliorer les performances. Cependant, ce changement a provoqué de graves fuites de mémoire. Cela est dû au fait que getaddrinfo() peut être annulé lors de la lecture du fichier /etc/gai.conf, ce qui entraîne une non-libération de la mémoire allouée. En raison de la difficulté à résoudre ce problème et du potentiel de graves problèmes de stabilité, l'équipe cURL a décidé de supprimer cette fonctionnalité dans #18540, en recommandant aux utilisateurs d'utiliser la bibliothèque c-ares comme alternative, malgré quelques limitations fonctionnelles.

Développement fuite de mémoire