تكنولوجيا

ثغرة من عام 2006 تجمد واجهة Enlightenment E16 بسبب خوارزمية نيوتن

خلل في خوارزمية تقليص النصوص تسبب في تجميد سطح المكتب

محرر أخبار تقنية في النيل نيوز، يهتم بتغطية المستجدات في عالم التكنولوجيا والإنترنت

رغم أنها ولدت في عام 2004، إلا أن محررة تقنية لا تزال تعتمد بشكل يومي على مدير النوافذ Enlightenment E16 الذي أطلق لأول مرة عام 1997. هذا النظام الذي يستهلك 24 ميجابايت فقط من الذاكرة، واجه مؤخراً عطلاً مفاجئاً تسبب في تجميد سطح المكتب بالكامل بمجرد محاولة فتح ملف PDF طويل العنوان باستخدام برنامج Atril.

عملية تتبع الخطأ كشفت عن مشكلة برمجية نادرة تعود جذورها إلى عام 2006 داخل الكود المصدري. تبين أن العطل ناتج عن تنفيذ خاطئ لخوارزمية نيوتن (Newton’s algorithm) المستخدمة لتقليص عناوين النوافذ الطويلة ووضع نقاط الحذف في منتصفها لتناسب حجم الإطار. الخوارزمية كانت تدخل في حالة تذبذب لا نهائية بين نقطتين، مما يؤدي إلى استهلاك موارد النظام وتجميد الواجهة دون توقف.

الفحص الفني عبر أداة gdb أظهر أن المشكلة تتركز في مكتبة imlib2 وتحديداً في دالة TextstateTextFitMB. وبدلاً من الوصول إلى نتيجة نهائية لحجم النص، كانت الخوارزمية تكرر المحاولة بنفس القيم دون توقف. تم إصلاح العطل عبر فرض حد أقصى للتكرار يبلغ 32 مرة، مع منع القيم السالبة في عداد الحروف، وضمان عدم حدوث قسمة على صفر أثناء قياس عرض الخط.

هذه الواقعة تعيد تسليط الضوء على استقرار البرمجيات القديمة مقابل الحديثة. ففي الوقت الذي تظهر فيه ثغرات أمنية معقدة في البرامج الحديثة، مثل ثغرة XZ Utils التي استهدفت سلاسل التوريد، أو الأخطاء المفاجئة في إصدارات كيرنل لينكس المستقرة (مثل نسخة 6.6.y)، يرى مستخدمو الأنظمة القديمة أن التحكم الكامل في الكود المصدري يظل ميزة أمان أساسية. بالنسبة لهؤلاء، فإن إصلاح ديون تقنية قديمة أسهل بكثير من التعامل مع برمجيات حديثة قد تحمل مفاجآت غير سارة أو تعديلات غير مدروسة من المطورين.

مقالات ذات صلة