Выпуск утыліты GNU cflow 1.7

Пасля трох гадоў распрацоўкі апублікаваны выпуск утыліты GNU cflow 1.7, прызначанай для пабудовы нагляднага графа выклікаў функцый у праграмах на мове Сі, які можа выкарыстоўвацца для спрашчэння вывучэння логікі працы дадатку. Граф будуецца толькі на аснове аналізу зыходных тэкстаў без неабходнасці выканання праграмы. Падтрымліваецца генерацыя як прамых, так і зваротных графаў патокаў выканання, а таксама генерацыя спісаў крыжаваных спасылак для файлаў з кодам.

Выпуск характэрны рэалізацыяй падтрымкі фармату высновы "dot" ('—format=dot') для фармавання выніку на мове DOT для наступнай візуалізацыі ў пакеце Graphviz. Дададзена магчымасць указання некалькіх стартавых функцый праз дубліраванне опцый '—main', для кожнай з падобных функцый будзе згенераваны асобны граф. Таксама дададзена опцыя «—target=FUNCTION» якая дазваляе абмежаваць выніковы граф толькі галінкай, у якую ўваходзяць пэўныя функцыі (опцыю «—target» можна паказваць некалькі разоў). У рэжым cflow-mode дададзены новыя каманды для навігацыі па графе: "c" - пераход да задзірлівай функцыі, "n" - пераход да наступнай функцыі на дадзеным узроўні ўкладзенасці і "p" - пераход да папярэдняй функцыі з тым жа ўзроўнем укладзенасці.

У новай версіі таксама ліквідаваны дзве ўразлівасці, якія былі выяўлены яшчэ ў 2019 годзе і прыводзяць да пашкоджання памяці пры апрацоўцы ў cflow спецыяльна аформленых зыходных тэкстаў. Першая ўразлівасць (CVE-2019-16165) выклікана зваротам да памяці пасля яе вызвалення (use-after-free) у кодзе парсера (функцыя reference у parser.c). Другая ўразлівасць (CVE-2019-16166) злучана з перапаўненнем буфера ў функцыі nexttoken(). На думку распрацоўшчыкаў, названыя праблемы не ўяўляюць пагрозы бяспецы, бо абмяжоўваюцца аварыйным завяршэннем утыліты.

Крыніца: opennet.ru

Дадаць каментар