Na drie jaar ontwikkeling is de GNU cflow 1.7 tool uitgebracht, bedoeld om een visuele grafiek van functieaanroepen in programma's geschreven in C te creëren. Dit kan helpen bij het vereenvoudigen van het begrijpen van de logica van de applicatie. De grafiek wordt uitsluitend opgebouwd op basis van de analyse van de broncode, zonder dat de applicatie daadwerkelijk uitgevoerd hoeft te worden. Het ondersteunt de generatie van zowel directe als omgekeerde grafieken van uitvoeringsstromen, evenals het genereren van lijsten met kruisverwijzingen voor codebestanden.
De release is opmerkelijk vanwege de implementatie van ondersteuning voor het uitvoerformaat 'dot' ('—format=dot') voor het genereren van resultaten in de DOT-taal voor verdere visualisatie in het Graphviz-pakket. Er is een mogelijkheid toegevoegd om meerdere startfuncties op te geven door opties ‘—main’ te dupliceren; voor elke van deze functies zal een aparte grafiek worden gegenereerd. Daarnaast is de optie ‘—target=FUNCTION’ toegevoegd, waarmee de resulterende grafiek beperkt kan worden tot de tak die bepaalde functies omvat (de ‘—target’ optie kan meerdere keren worden opgegeven). Nieuwe commando's zijn toegevoegd aan de cflow-modus voor navigatie door de grafiek: ‘c’ — ga naar de aanroepende functie, ‘n’ — ga naar de volgende functie op dit niveau van inspringing en ‘p’ — ga naar de vorige functie met hetzelfde niveau van inspringing.
In de nieuwe versie zijn ook twee kwetsbaarheden verholpen die in 2019 zijn ontdekt en die leiden tot geheugenschade bij de verwerking van speciaal gevormde bronbestanden in cflow. De eerste kwetsbaarheid (CVE-2019-16165) wordt veroorzaakt door toegang tot geheugen na het vrijgeven ervan (use-after-free) in de code van de parser (functie reference in parser.c). De tweede kwetsbaarheid (CVE-2019-16166) heeft betrekking op een bufferoverflow in de functie nexttoken(). Volgens de ontwikkelaars vormen deze problemen geen beveiligingsrisico, omdat ze zich beperken tot het crashen van de tool.
Bron: opennet.ru
