cURL 8.16.0におけるpthread_cancelの悲劇的な結果とその削除

2025-09-13

cURL 8.16.0は、パフォーマンス向上を目指してgetaddrinfo()を中断するためにpthread_cancelを使用することを導入しました。しかし、この変更により深刻なメモリリークが発生しました。これは、getaddrinfo()が/etc/gai.confファイルの読み込み中にキャンセルされる可能性があり、割り当てられたメモリの解放が行われないためです。この問題の解決が困難であり、深刻な安定性の問題につながる可能性があるため、cURLチームは#18540でこの機能を削除することを決定し、機能的な制限はあるものの、c-aresライブラリを使用するよう推奨しています。

続きを読む
開発