Первый вопрос, который возникает а как вообще можно говорить о безопасности, в языке, который предоставляет широкие возможности для небезопасного программирования с использованием операций адресации, типов данных указателей, и отсутствием стандартных библиотек.

Ответ: никак

Способ номер 1.

Писать как обычно, используя статические анализаторы (Java VM based, CMake/Clang LLVM based), и анализаторы утечек памяти, типа valgrind, или sanitizers для обнаружения утечек памяти, плюс какое-то количество ручного кода для тестирования

Способ номер 2.

Попробовать написать обёртку над операциям работы с памятью напрямую, предоставить API с безопасными операциями, и запретить пользователям обращаться к памяти через указатели.

Второй способ подразумевает, что у вас где-то должно происходить преобразование безопасных типов данных , заменяющих небезопасные при операциях, выполняемых через ваш API.

Тут тоже требуется определенный подход и аккуратность при проверке входящих/исходящих параметров вызово функций. И это всё, что имеется по умолчанию.

6 комментариев

У меня есть диплом программиста
а у тебя?

2
Ответить

"Мои предки улыбаются, глядя на меня, имперцы.
А ваши - улыбаются вам?

1
Ответить

Есть, есть :)

Ответить

В 99% случаев можно всей этой хуйней просто не пользоваться

1
Ответить

Можно :)

Ответить