Previene la ejecución de código directa, mientras que los ataques conocidos como return-to-libc (ret2libc) son más difícil de explotar, fiándose de la suerte del éxito, pero no previene de la sobrescritura de variables y punteros.