انتشار ابزار GNU cflow 1.7

پس از سه سال توسعه، ابزار GNU cflow 1.7 منتشر شد که برای ساختن یک نمودار بصری از فراخوانی توابع در برنامه های C طراحی شده است که می تواند برای ساده کردن مطالعه منطق برنامه استفاده شود. نمودار تنها بر اساس تجزیه و تحلیل متون مبدأ و بدون نیاز به اجرای برنامه ساخته شده است. تولید نمودارهای جریان اجرای رو به جلو و معکوس و همچنین تولید لیستی از ارجاعات متقابل برای فایل های کد پشتیبانی می شود.

این نسخه به دلیل اجرای پشتیبانی از فرمت خروجی "نقطه" ('—format=dot') برای تولید نتیجه در زبان DOT برای تجسم بعدی در بسته Graphviz قابل توجه است. قابلیت تعیین چندین تابع شروع با کپی کردن گزینه‌های '—main' اضافه شد؛ یک نمودار جداگانه برای هر یک از این توابع تولید می‌شود. همچنین گزینه "--target=FUNCTION" اضافه شده است که به شما امکان می دهد نمودار حاصل را فقط به شاخه ای که شامل توابع خاصی است محدود کنید (گزینه "--target" را می توان چندین بار مشخص کرد). دستورات جدیدی برای ناوبری نمودار به حالت cflow اضافه شده است: "c" - به تابع فراخوانی بروید، "n" - به تابع بعدی در یک سطح تودرتوی معین بروید و "p" - به تابع قبلی با همان تابع بروید. سطح تودرتو

نسخه جدید همچنین دو آسیب‌پذیری را که در سال 2019 شناسایی شده‌اند، از بین می‌برد و منجر به تخریب حافظه در هنگام پردازش متون منبع با فرمت خاص در cflow می‌شود. اولین آسیب‌پذیری (CVE-2019-16165) ناشی از دسترسی پس از استفاده به حافظه آزاد در کد تجزیه‌کننده (عملکرد مرجع در parser.c) است. دومین آسیب پذیری (CVE-2019-16166) مربوط به سرریز بافر در تابع nexttoken() است. به گفته توسعه دهندگان، این مشکلات تهدید امنیتی ایجاد نمی کنند، زیرا آنها به خاتمه غیرعادی ابزار محدود می شوند.

منبع: opennet.ru

اضافه کردن نظر