Consequências catastróficas do pthread_cancel no cURL 8.16.0 e sua remoção

2025-09-13

O cURL 8.16.0 introduziu o uso de pthread_cancel para interromper getaddrinfo(), visando melhorias de desempenho. No entanto, essa alteração causou sérios vazamentos de memória. Isso ocorre porque getaddrinfo() pode ser cancelado durante a leitura do arquivo /etc/gai.conf, levando à não liberação da memória alocada. Devido à dificuldade em resolver esse problema e ao potencial para sérios problemas de estabilidade, a equipe do cURL decidiu remover esse recurso em #18540, recomendando que os usuários utilizem a biblioteca c-ares como alternativa, apesar de algumas limitações funcionais.

Desenvolvimento vazamento de memória