Vydanie pomôcky GNU cflow 1.7

Po troch rokoch vývoja bola vydaná utilita GNU cflow 1.7, navrhnutá na vytvorenie vizuálneho grafu volaní funkcií v programoch C, ktorý možno použiť na zjednodušenie štúdia aplikačnej logiky. Graf je zostavený len na základe analýzy zdrojových textov, bez nutnosti spúšťania programu. Podporuje sa generovanie dopredného aj spätného vykonávania tokových grafov, ako aj vytváranie zoznamov krížových odkazov pre súbory kódu.

Vydanie je pozoruhodné implementáciou podpory výstupného formátu „bodka“ („—format=bodka“) na generovanie výsledku v jazyku DOT na následnú vizualizáciu v balíku Graphviz. Pridaná možnosť špecifikovať niekoľko počiatočných funkcií duplikovaním možností „—hlavné“; pre každú z týchto funkcií sa vygeneruje samostatný graf. Pridaná je aj možnosť „--target=FUNCTION“, ktorá umožňuje obmedziť výsledný graf iba na vetvu, ktorá obsahuje určité funkcie (možnosť „--target“ je možné zadať viackrát). Do režimu cflow boli pridané nové príkazy na navigáciu v grafe: „c“ – prechod na funkciu volania, „n“ – prechod na nasledujúcu funkciu na danej úrovni vnorenia a „p“ – prechod na predchádzajúcu funkciu s rovnakým úroveň vnorenia.

Nová verzia tiež odstraňuje dve zraniteľnosti, ktoré boli identifikované už v roku 2019 a vedú k poškodeniu pamäte pri spracovaní špeciálne naformátovaných zdrojových textov v cflow. Prvá chyba zabezpečenia (CVE-2019-16165) je spôsobená prístupom do pamäte v kóde syntaktického analyzátora (referenčná funkcia v parser.c). Druhá chyba zabezpečenia (CVE-2019-16166) súvisí s pretečením vyrovnávacej pamäte vo funkcii nexttoken(). Podľa vývojárov tieto problémy nepredstavujú bezpečnostnú hrozbu, pretože sú obmedzené na abnormálne ukončenie nástroja.

Zdroj: opennet.ru

Pridať komentár