Lançamento do utilitário GNU cflow 1.7

Após três anos de desenvolvimento, foi lançado o utilitário GNU cflow 1.7, projetado para construir um gráfico visual de chamadas de função em programas C, que pode ser usado para simplificar o estudo da lógica da aplicação. O gráfico é construído apenas com base na análise dos textos fontes, sem a necessidade de execução do programa. É suportada a geração de gráficos de fluxo de execução direta e reversa, bem como a geração de listas de referências cruzadas para arquivos de código.

O lançamento se destaca pela implementação do suporte ao formato de saída “ponto” ('—format=dot') para geração do resultado na linguagem DOT para posterior visualização no pacote Graphviz. Adicionada a capacidade de especificar múltiplas funções iniciais duplicando as opções '—main'; um gráfico separado será gerado para cada uma dessas funções. Também foi adicionada a opção “--target=FUNCTION”, que permite limitar o gráfico resultante apenas ao ramo que inclui certas funções (a opção “--target” pode ser especificada várias vezes). Novos comandos para navegação no gráfico foram adicionados ao modo cflow: “c” - vai para a função de chamada, “n” - vai para a próxima função em um determinado nível de aninhamento e “p” - vai para a função anterior com o mesmo nível de aninhamento.

A nova versão também elimina duas vulnerabilidades que foram identificadas em 2019 e levam à corrupção de memória ao processar textos-fonte especialmente formatados no cflow. A primeira vulnerabilidade (CVE-2019-16165) é causada por um acesso à memória de uso após liberação no código do analisador (função de referência em parser.c). A segunda vulnerabilidade (CVE-2019-16166) está relacionada a um buffer overflow na função nexttoken(). Segundo os desenvolvedores, esses problemas não representam uma ameaça à segurança, pois se limitam ao encerramento anormal do utilitário.

Fonte: opennet.ru

Adicionar um comentário