Phát hành tiện ích GNU cflow 1.7

Sau ba năm phát triển, tiện ích GNU cflow 1.7 đã được phát hành, được thiết kế để xây dựng biểu đồ trực quan về các lệnh gọi hàm trong chương trình C, có thể được sử dụng để đơn giản hóa việc nghiên cứu logic ứng dụng. Biểu đồ chỉ được xây dựng dựa trên việc phân tích các văn bản nguồn mà không cần phải thực hiện chương trình. Hỗ trợ tạo cả biểu đồ luồng thực thi thuận và ngược, cũng như tạo danh sách tham chiếu chéo cho các tệp mã.

Bản phát hành đáng chú ý là việc triển khai hỗ trợ cho định dạng đầu ra “dấu chấm” ('—format=dot') để tạo kết quả bằng ngôn ngữ DOT để hiển thị tiếp theo trong gói Graphviz. Đã thêm khả năng chỉ định nhiều chức năng bắt đầu bằng cách sao chép các tùy chọn '—main'; một biểu đồ riêng biệt sẽ được tạo cho mỗi chức năng này. Tùy chọn “--target=FUNCTION” cũng được thêm vào, cho phép bạn giới hạn biểu đồ kết quả chỉ ở nhánh bao gồm các chức năng nhất định (có thể chỉ định tùy chọn “--target” nhiều lần). Các lệnh mới để điều hướng biểu đồ đã được thêm vào chế độ cflow: “c” - đi tới hàm gọi, “n” - đi tới hàm tiếp theo ở cấp độ lồng nhất định và “p” - đi tới hàm trước đó với cùng cấp độ đó mức độ lồng nhau.

Phiên bản mới cũng loại bỏ hai lỗ hổng được xác định vào năm 2019 và dẫn đến hỏng bộ nhớ khi xử lý văn bản nguồn được định dạng đặc biệt trong cflow. Lỗ hổng đầu tiên (CVE-2019-16165) là do truy cập bộ nhớ use-after-free trong mã trình phân tích cú pháp (hàm tham chiếu trong Parser.c). Lỗ hổng thứ hai (CVE-2019-16166) liên quan đến lỗi tràn bộ đệm trong hàm nexttoken(). Theo các nhà phát triển, những vấn đề này không gây ra mối đe dọa bảo mật vì chúng chỉ giới hạn ở việc tiện ích bị chấm dứt bất thường.

Nguồn: opennet.ru

Thêm một lời nhận xét