عواقب كارثية لـ pthread_cancel في cURL 8.16.0 وإزالته
2025-09-13
أدخلت النسخة 8.16.0 من cURL استخدام pthread_cancel لتعطيل getaddrinfo()، بهدف تحسين الأداء. ومع ذلك، تسبب هذا التغيير في حدوث تسرب خطير للذاكرة. وذلك لأن getaddrinfo() يمكن إلغاؤه أثناء قراءة ملف /etc/gai.conf، مما يؤدي إلى عدم إطلاق الذاكرة المخصصة. نظرًا لصعوبة حل هذه المشكلة وإمكانية حدوث مشكلات خطيرة في الاستقرار، قرر فريق cURL إزالة هذه الوظيفة في #18540، ونصح المستخدمين باستخدام مكتبة c-ares كبديل، على الرغم من بعض القيود الوظيفية.
التطوير