gccでは、スタック上に積まれたリターンアドレスの改ざんを検知する仕組みが
導入されています。
これを、回避したい場合、コンパイル時、-fno-stack-protectorを指定します。
gcc -fno-stack-protector