Компания Microsoft открыла систему динамической проверки указателей для кода на языке Си

Компания Microsoft перевела в разряд открытых проектов
Checked C, расширение для языка Си, вводящее дополнительные статические и динамические проверки для выявления и блокирования типовых ошибок, таких как переполнения буферов, выход за границы выделенной области памяти и некорректное приведение типов. Наработки открыты под лицензией MIT. Практические реализации расширения Checked C подготовлены для LLVM и Clang, и доступны под свободной лицензией NCSA (лицензия LLVM). Спецификация с описанием Checked C включает 140 страниц.

Checked C вводит серию новых типов указателей и массивов, совместимых с существующими указателями и массивами, для которых во время выполнения программы производится автоматическая проверка выхода за допустимые границы. Расширение полностью обратно совместимо с имеющимся кодом на языке Си и не требует переработки программ. При помощи Checked C разработчики получают возможность дополнительно описать, как они намерены использовать указатели и блоки памяти, на которые ссылаются данные указатели. Предлагается три типа контролируемых указателей: простые указатели на фиксированные структуры, указатели на массивы известного размера и указатели на произвольные блоки памяти переменного размера. Также доступен специальный тип для создания массивов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.