Nach drei Jahren Entwicklung wurde die Version 1.7 des GNU cflow-Tools veröffentlicht, die dazu dient, anschauliche Funktionsaufrufdiagramme in C-Programmen zu erstellen, um das VerstĂ€ndnis der Anwendungslogik zu erleichtern. Das Diagramm wird ausschlieĂlich durch die Analyse des Quellcodes erstellt, ohne dass das Programm ausgefĂŒhrt werden muss. Es wird die Generierung sowohl von direkten als auch von umgekehrten AusfĂŒhrungsflussdiagrammen sowie von Listen mit Querverweisen fĂŒr die Code-Dateien unterstĂŒtzt.
Die Veröffentlichung ist bemerkenswert, da sie die UnterstĂŒtzung des Ausgabeformats âdotâ (ââformat=dotâ) implementiert, um das Ergebnis im DOT-Format fĂŒr eine spĂ€tere Visualisierung mit Graphviz zu erstellen. Es wurde die Möglichkeit hinzugefĂŒgt, mehrere Startfunktionen durch Wiederholung der Option ââmainâ anzugeben; fĂŒr jede dieser Funktionen wird ein separates Diagramm generiert. AuĂerdem wurde die Option ââtarget=FUNCTIONâ hinzugefĂŒgt, die es ermöglicht, das resultierende Diagramm auf den Teilbaum zu beschrĂ€nken, der bestimmte Funktionen einschlieĂt (die Option ââtargetâ kann mehrmals angegeben werden). Im cflow-Modus wurden neue Befehle zur Navigation im Diagramm hinzugefĂŒgt: âcâ â Wechsel zur aufrufenden Funktion, ânâ â Wechsel zur nĂ€chsten Funktion auf der aktuellen Verschachtelungsebene und âpâ â Wechsel zur vorherigen Funktion mit derselben Verschachtelungstiefe.
In der neuen Version wurden auĂerdem zwei SicherheitsanfĂ€lligkeiten behoben, die bereits 2019 entdeckt wurden und zu einer SpeicherbeschĂ€digung beim Verarbeiten von speziell formatierten Quelltexten in cflow fĂŒhren. Die erste SicherheitsanfĂ€lligkeit (CVE-2019-16165) wird durch den Zugriff auf Speicher nach seiner Freigabe (use-after-free) im Parser-Code (Funktion reference in parser.c) verursacht. Die zweite SicherheitsanfĂ€lligkeit (CVE-2019-16166) hĂ€ngt mit einem Buffer Overflow in der Funktion nexttoken() zusammen. Laut den Entwicklern stellen diese Probleme keine Sicherheitsgefahr dar, da sie auf ein unerwartetes Beenden des Tools beschrĂ€nkt sind.
Quelle: opennet.ru
