De acuerdo con el documento de opciones de instrumentación de gcc , el -fstack-protector solo protege contra "funciones que llaman alloca, y funciona con buffers de más de 8 bytes".
¿En qué se diferencian los buffers de más de 8 bytes de los que tienen menos de 8 bytes? ¿Por qué gcc puede decir que es más probable que las pequeñas memorias intermedias se optimicen de forma segura?
En un comentario en enlace , brantgurga menciona que "se encontró que 8 bytes es el umbral donde se encuentra la probabilidad de desbordamiento Valió el costo de rendimiento de la protección ". Sin embargo, estoy confundido en cuanto a por qué un tamaño de un búfer tiene alguna relación con la probabilidad de un desbordamiento de búfer.