إطلاق الأداة المساعدة GNU cflow 1.7

بعد ثلاث سنوات من التطوير، تم إصدار الأداة المساعدة GNU cflow 1.7، المصممة لبناء رسم بياني مرئي لاستدعاءات الوظائف في برامج C، والذي يمكن استخدامه لتبسيط دراسة منطق التطبيق. يتم إنشاء الرسم البياني فقط بناءً على تحليل النصوص المصدرية، دون الحاجة إلى تنفيذ البرنامج. يتم دعم إنشاء الرسوم البيانية لتدفق التنفيذ الأمامي والخلفي، بالإضافة إلى إنشاء قوائم المراجع الترافقية لملفات التعليمات البرمجية.

يتميز الإصدار بتنفيذ دعم تنسيق الإخراج "dot" ('—format=dot') لإنشاء النتيجة بلغة DOT للتصور اللاحق في حزمة Graphviz. تمت إضافة القدرة على تحديد وظائف بداية متعددة عن طريق تكرار الخيارات "—الرئيسية"، وسيتم إنشاء رسم بياني منفصل لكل من هذه الوظائف. تمت إضافة أيضًا خيار "--target=FUNCTION"، والذي يسمح لك بقصر الرسم البياني الناتج على الفرع الذي يتضمن وظائف معينة فقط (يمكن تحديد خيار "--target" عدة مرات). تمت إضافة أوامر جديدة للتنقل في الرسم البياني إلى وضع cflow: "c" - انتقل إلى وظيفة الاستدعاء، و"n" - انتقل إلى الوظيفة التالية عند مستوى تداخل معين و"p" - انتقل إلى الوظيفة السابقة بنفس المستوى مستوى التعشيش.

يزيل الإصدار الجديد أيضًا اثنتين من نقاط الضعف التي تم تحديدها في عام 2019 وتؤدي إلى تلف الذاكرة عند معالجة النصوص المصدر المنسقة خصيصًا في cflow. سبب الثغرة الأمنية الأولى (CVE-2019-16165) هو الوصول إلى الذاكرة بعد الاستخدام الحر في كود المحلل اللغوي (الدالة المرجعية في parser.c). تتعلق الثغرة الأمنية الثانية (CVE-2019-16166) بتجاوز سعة المخزن المؤقت في وظيفة nexttoken(). وفقا للمطورين، فإن هذه المشاكل لا تشكل تهديدا أمنيا، لأنها تقتصر على الإنهاء غير الطبيعي للأداة المساعدة.

المصدر: opennet.ru

إضافة تعليق