GNU cflow 1.7 is al uitgebracht en wordt geleverd met nieuwe opdrachten en meer

Na drie jaar ontwikkeling de release van de nieuwe versie van het GNU cflow-hulpprogramma 1.7 werd aangekondigd. Voor degenen die niet op de hoogte zijn van dit hulpprogramma, moeten ze weten dat het is ontworpen om een ​​visuele grafiek van functieaanroepen in C-programma's te bouwen, die kan worden gebruikt om de studie van applicatielogica te vereenvoudigen.

De grafiekof het is uitsluitend opgebouwd uit de analyse van de bronteksten, zonder de noodzaak om het programma uit te voeren, en het ondersteunt het genereren van voorwaartse en achterwaartse stroomgrafieken, evenals het genereren van kruisverwijzingslijsten voor bestanden met code.

Het pakket is volledig functioneel en compileert en draait op elke GNU/Linux-distributie en ook op nieuwere UNIX-achtige systemen. Het ondersteunt alle regelwisselcommando's die door POSIX worden vereist. Het kan output produceren in twee formaten: GNU cflow-formaat (wat de standaard is) en POSIX-formaat.

Momenteel kan het hulpprogramma alleen C-lettertypen verwerken, omdat dit de enige afwijking is van de POSIX-specificaties, die de mogelijkheid vereist om YACC- en LEX-lettertypen te verwerken, evenals binaire objectbestanden.

De cflow-mode.el Emacs-module werkt met bestanden in het GNU cflow-formaat (in tegenstelling tot POSIX-formaat) en is getest met Emacs 24.2.1.

Belangrijkste nieuwe functies van GNU cflow 1.7

In deze nieuwe releaseversie opmerkelijk voor het implementeren van ondersteuning voor het "dot" uitvoerformaat ('–Format = punt') om een ​​DOT-resultaat te genereren voor verdere verwerking in het Graphviz-pakket.

Bovendien wordt dat ook benadrukt de mogelijkheid toegevoegd om meerdere opstartfuncties te specificeren door de '–main'-opties te dupliceren, die zal worden gegenereerd met een aparte grafiek voor elk van deze functies.

Er wordt ook opgemerkt dat de optie is toegevoegd "–target=FUNCTION" om de resulterende grafiek te beperken tot slechts één tak die bepaalde functies bevat (de optie “–target” kan meerdere keren worden opgegeven).

Een andere verandering die in deze nieuwe versie van GNU cflow 1.7 is geïntegreerd, is dat: nieuwe commando's zijn toegevoegd voor kaartnavigatie een cflow-mode: »c" die wordt gebruikt om naar de aanroepende functie te gaan, "n" die wordt gebruikt om naar de volgende functie op dit nesting-niveau te gaan en "p" om naar de vorige functie te gaan met dezelfde nesting.

Aan de andere kant wordt het ook genoemd in de aankondiging van deze nieuwe versie van GNU cflow 1.7 dat ook twee kwetsbaarheden verwijderd die in 2019 werden geïdentificeerd en geheugenbeschadiging veroorzaakten bij het verwerken van speciaal vervaardigde bronteksten in cflow.

Van de kwetsbaarheden die zijn verholpen, worden de volgende genoemd:

  • De eerste kwetsbaarheid (CVE-2019-16165) doet zich voor bij toegang tot geheugen nadat het is vrijgemaakt (use-after-free) in de parsercode (referentiefunctie in parser.c).
  • De tweede kwetsbaarheid (CVE-2019-16166) houdt verband met een bufferoverloop in de nexttoken()-functie. Naar de mening van de ontwikkelaars vormen deze problemen geen bedreiging voor de veiligheid, aangezien ze beperkt zijn tot abnormale beëindiging van het hulpprogramma.

Eindelijk als u er meer over wilt weten over deze nieuwe versie kunt u de details inzien de volgende link.

Hoe installeer ik cflow op Linux?

Voor degenen die geïnteresseerd zijn om dit hulpprogramma op hun systeem te kunnen installeren, moeten ze weten dat cflow zich in de repositories van enkele van de belangrijkste Linux-distributies bevindt. Ik moet alleen vermelden dat de nieuwe versie in sommige ervan nog niet is geïmplementeerd, maar binnen enkele dagen klaar zal zijn.

In het geval van gebruikers van Debian, Ubuntu of een afgeleide hiervan, kunnen ze vanaf de terminal installeren door de volgende opdracht te typen:

sudo apt install cflow -y

In het geval van gebruikers van Arch Linux, Manjaro of een andere distributie die hiervan is afgeleid, moet de installatie worden gedaan vanuit de AUR-repositories:

yay -s cflow

Voor degenen die geïnteresseerd zijn om de nieuwe versie te kunnen compileren, deze kan worden verkregen bij de volgende link.