Вопросы к Поиску с Алисой
Stack Protector в контексте компиляции — это опция, которая позволяет проверять переполнение буфера во время выполнения. www.baeldung.com Она добавляет защитные переменные и механизмы управления к функциям с буферами размером более 8 байт и функциям, вызывающим alloca(). www.baeldung.com
Компилятор инициализирует защитную переменную в начале функции и проверяет её при выходе из функции. www.baeldung.com Если проверка завершается неудачей, выводится сообщение об ошибке. www.baeldung.com
Некоторые варианты опции Stack Protector: -fstack-protector — защищает функции, вызывающие alloca(), и функции с массивами символов размером не менее 8 байт; www.productive-cpp.com -fstack-protector-all — защищает все функции, даже пустые; www.productive-cpp.com -fstack-protector-strong — защищает функции с любыми видами массивов или ссылками на адреса локальных фреймов; www.productive-cpp.com -fstack-protector-explicit — защищает только функции, явно отмеченные атрибутом stack_protect. www.productive-cpp.com