Вот интересно, читаю тут документ, в Си ввели вот эту канарейку в стэк как защиту от изменения стэка и она проверяется получается при выходе их функциии, если типа не совпадает то стэк трогали и программа вылетает, но как она поможет против выполнения какого нить зловреда, например в стек попадает буффер переписывает адрес возврата на следущую свою строку и при выходе из стека попадает на свой код, делает все что ему надо ну а потом программа полюбому вылетает, какой смысл в этой канарейке?