🇵🇱 Дедлайн по e-PIT всё ближе ⏳ Поддержите devby из уже уплаченных налогов 💙
Support us

Microsoft открыла исходники Checked C

Оставить комментарий
Microsoft открыла исходники Checked C

Исследовательский центр Microsoft Research открыл исходники проекта Checked C — расширения языка программирования С, которое упрощает разработку программ без уязвимостей, связанных с переполнением буфера, выходом за границы массива, некорректным приведением типа и другими нарушениями безопасности памяти, сообщает Хакер.ru.

Читать далее...

Уязвимости такого рода особенно характерны для С и C++, потому что эти языки разрешают обращаться к произвольным адресам и вручную пересчитывать значения указателей.

Забота об осмысленности этих вычислений и допустимости выполняемых операций с памятью полностью ложится на плечи разработчика. Неизбежный результат — труднозаметные ошибки в любой достаточно сложной программе. В лучшем случае они ведут к сбоям и неверной работе, в худшем — оставляют лазейки, которыми могут воспользоваться злоумышленники.

Checked С даёт программисту средства, позволяющие лучше описать, каким образом предполагается использовать указатели и где именно располагаются данных. Допустимость операций с памятью проверяется как во время исполнения программы, так и на стадии компиляции.

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

  • ptr<T> — указатель на тип T, который не нуждается в проверке выхода за границы массива. Такие указатели нельзя использовать для вычисления новых адресов.
  • array_ptr<T> — указатель на элемент массива, состоящего из значений типа T. Адресная арифметика с этой разновидностью указателей разрешена, но разработчик должен сам следить за тем, чтобы результат вычислений не оказался за пределами массива.
  • span<T> — указатель, хранящий информацию о величине массива и избегающий выхода за его пределы во время исполнения программы. При взаимодействии с С он приводится к типу array_ptr.

Все три новых указателя не могут иметь нулевое значение, когда их используют для обращения к памяти.

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

Поддержите редакцию 1,5% налога: бесплатно и за 5 минут

Как помочь, если вы в Польше

Читайте также
Microsoft выпустила сразу три ИИ-модели: для текста, голоса и изображений
Microsoft выпустила сразу три ИИ-модели: для текста, голоса и изображений
Microsoft выпустила сразу три ИИ-модели: для текста, голоса и изображений
Microsoft облажалась даже в космосе: у пилотов лунной миссии «отвалился» Outlook
Microsoft облажалась даже в космосе: у пилотов лунной миссии «отвалился» Outlook
Microsoft облажалась даже в космосе: у пилотов лунной миссии «отвалился» Outlook
Инвесторы разочарованы: Microsoft показала худший квартал с 2008 года
Инвесторы разочарованы: Microsoft показала худший квартал с 2008 года
Инвесторы разочарованы: Microsoft показала худший квартал с 2008 года
«Я знал, что эта чушь случится»: Copilot вставляет рекламу в код на GitHub — разрабы возмущены
«Я знал, что эта чушь случится»: Copilot вставляет рекламу в код на GitHub — разрабы возмущены
«Я знал, что эта чушь случится»: Copilot вставляет рекламу в код на GitHub — разрабы возмущены
1 комментарий

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.