După trei ani de dezvoltare, a fost publicată versiunea 1.7 a utilitarului GNU cflow, destinat construirii unui grafic vizual al apelurilor de funcții în programele scrise în C, care poate fi folosit pentru a facilita înțelegerea logicii unei aplicații. Graficul este construit exclusiv pe baza analizei codului sursă, fără a necesita executarea programului. Se suportă generarea atât a grafurilor directe, cât și a celor inverse ale fluxurilor de execuție, precum și generarea listelor de referințe încrucișate pentru fișierele cu cod.
Lansarea este notabilă pentru implementarea suportului pentru formatul de ieșire „dot” (‘—format=dot’) pentru a genera rezultatul în limbajul DOT pentru vizualizare ulterioară în pachetul Graphviz. A fost adăugată posibilitatea de a specifica mai multe funcții de început prin duplicarea opțiunii ‘—main’, pentru fiecare dintre aceste funcții va fi generat un grafic separat. De asemenea, a fost adăugată opțiunea „—target=FUNCTION” care permite limitarea graficului rezultat doar la ramura care include funcții specifice (opțiunea „—target” poate fi specificată de mai multe ori). În modul cflow, au fost adăugate noi comenzi pentru navigarea prin grafic: „c” — trecerea la funcția apelantă, „n” — trecerea la următoarea funcție la același nivel de imbricare și „p” — trecerea la funcția anterioară cu același nivel de imbricare.
În noua versiune au fost, de asemenea, eliminate două vulnerabilități care au fost descoperite încă din 2019 și care duc la coruperea memoriei atunci când se prelucrează în cflow coduri sursă special concepute. Prima vulnerabilitate (CVE-2019-16165) este cauzată de accesarea memoriei după ce aceasta a fost eliberată (use-after-free) în codul parserului (funcția reference din parser.c). A doua vulnerabilitate (CVE-2019-16166) este legată de depășirea buffer-ului în funcția nexttoken(). Potrivit dezvoltatorilor, problemele menționate nu prezintă o amenințare pentru securitate, deoarece se limitează la închiderea neașteptată a utilitarului.
Sursa: opennet.ro
