GNU cflow 1.7 è già stato rilasciato e include nuovi comandi e altro ancora

Dopo tre anni di sviluppo è stato annunciato il rilascio della nuova versione dell'utility GNU cflow 1.7. Per coloro che non sono a conoscenza di questa utilità, dovrebbero sapere che lo è progettato per costruire un grafico visivo delle chiamate di funzione nei programmi C, che può essere utilizzato per semplificare lo studio della logica applicativa.

il graficooppure è costruito esclusivamente dall'analisi dei testi di partenza, senza la necessità di eseguire il programma, inoltre supporta la generazione di grafici di flusso diretto e inverso, nonché la generazione di elenchi di riferimenti incrociati per file con codice.

Il pacchetto è completamente funzionale e compila e gira su qualsiasi distribuzione GNU/Linux e anche su sistemi più recenti simili a UNIX. Supporta tutte le opzioni della riga di comando richieste da POSIX. È in grado di produrre risultati in due formati: in formato GNU cflow (che è l'impostazione predefinita) e in formato POSIX.

Attualmente, l'utilità può elaborare solo i caratteri C, poiché questa è l'unica deviazione dalle specifiche POSIX, che richiede la capacità di elaborare i caratteri YACC e LEX, nonché i file di oggetti binari.

Il modulo Emacs cflow-mode.el funziona con file nel formato GNU cflow (in contrapposizione al formato POSIX) ed è stato testato con Emacs 24.2.1.

Principali novità di GNU cflow 1.7

In questa nuova versione di rilascio notevole per l'implementazione del supporto per il formato di output "punto". ('–format=punto') per generare un risultato DOT per un'ulteriore elaborazione nel pacchetto Graphviz.

Inoltre, viene anche evidenziato che aggiunta la possibilità di specificare più funzioni di avvio duplicando le opzioni '–main', che verrà generato con un grafico separato per ciascuna di queste funzioni.

Si segnala inoltre che l'opzione è stata aggiunta "–target=FUNCTION" per limitare il grafico risultante a un solo ramo che include alcune funzioni (l'opzione “–target” può essere specificata più volte).

Un'altra modifica che è stata integrata in questa nuova versione di GNU cflow 1.7 è quella sono stati aggiunti nuovi comandi per la navigazione cartografica a cflow-mode:”c” che viene utilizzato per passare alla funzione chiamante, “n” che viene utilizzato per passare alla funzione successiva in questo livello di annidamento e “p” per passare alla funzione precedente con lo stesso livello di annidamento .

D'altra parte, nell'annuncio di questa nuova versione di GNU cflow 1.7 viene anche menzionato che esso due vulnerabilità sono state rimosse che sono stati identificati nel 2019 causando il danneggiamento della memoria durante l'elaborazione di testi di origine appositamente predisposti in cflow.

Delle vulnerabilità che sono state risolte, sono menzionate le seguenti:

  • La prima vulnerabilità (CVE-2019-16165) si verifica quando si accede alla memoria dopo averla liberata (use-after-free) nel codice del parser (funzione di riferimento in parser.c).
  • La seconda vulnerabilità (CVE-2019-16166) riguarda un buffer overflow nella funzione nexttoken(). Secondo gli sviluppatori, questi problemi non rappresentano una minaccia per la sicurezza in quanto sono limitati alla chiusura anomala dell'utilità.

Infine se sei interessato a saperne di più riguardo a questa nuova versione, puoi controllare i dettagli in il seguente collegamento.

Come installare cflow su Linux?

Per coloro che sono interessati a poter installare questa utility sul proprio sistema, dovrebbero sapere che cflow è all'interno dei repository di alcune delle principali distribuzioni Linux. Devo solo dire che la nuova versione non è stata ancora implementata in alcuni di essi, ma sarà pronta nel giro di pochi giorni.

Nel caso di coloro che sono utenti di Debian, Ubuntu o di qualsiasi derivata di questi, possono installare da terminale digitando il seguente comando:

sudo apt install cflow -y

Nel caso di utenti di Arch Linux, Manjaro o qualsiasi altra distribuzione da questi derivata, l'installazione deve essere eseguita dai repository AUR:

yay -s cflow

Per quanto riguarda coloro che sono interessati a poter compilare la nuova versione, questa può essere ottenuta dal seguente link