Lanzamiento de la utilidad GNU cflow 1.7

Después de tres años de desarrollo, se lanzó la utilidad GNU cflow 1.7, diseñada para construir un gráfico visual de llamadas a funciones en programas C, que puede usarse para simplificar el estudio de la lógica de la aplicación. El gráfico se construye únicamente en base al análisis de los textos fuente, sin necesidad de ejecutar el programa. Se admite la generación de gráficos de flujo de ejecución tanto directos como inversos, así como la generación de listas de referencias cruzadas para archivos de código.

El lanzamiento se destaca por la implementación del soporte para el formato de salida "punto" ('—format=dot') para generar el resultado en el lenguaje DOT para su posterior visualización en el paquete Graphviz. Se agregó la capacidad de especificar múltiples funciones iniciales duplicando las opciones '—principales'; se generará un gráfico separado para cada una de estas funciones. También se agrega la opción “--target=FUNCTION”, que le permite limitar el gráfico resultante solo a la rama que incluye ciertas funciones (la opción “--target” se puede especificar varias veces). Se han agregado nuevos comandos para la navegación de gráficos al modo cflow: "c" - va a la función de llamada, "n" - va a la siguiente función en un nivel de anidamiento determinado y "p" - va a la función anterior con el mismo nivel de anidación.

La nueva versión también elimina dos vulnerabilidades que se identificaron en 2019 y que provocaban daños en la memoria al procesar textos fuente con formato especial en cflow. La primera vulnerabilidad (CVE-2019-16165) es causada por un acceso a la memoria de uso después de liberación en el código del analizador (función de referencia en parser.c). La segunda vulnerabilidad (CVE-2019-16166) está relacionada con un desbordamiento del búfer en la función nexttoken(). Según los desarrolladores, estos problemas no suponen una amenaza para la seguridad, ya que se limitan a la finalización anormal de la utilidad.

Fuente: opennet.ru

Añadir un comentario