-fstack-check
: Wenn zwei Feature-Makros STACK_CHECK_BUILTIN
und STACK_CHECK_STATIC_BUILTIN
im default 0 gelassen werden, es fügt nur eine Null-Byte all 4kb (Seite), wenn der Stapel wächst. Standardmäßig nur eine, aber wenn der Stapel mehr als eine Seite wachsen kann, was der gefährlichste Fall ist, alle 4 KB. linux> 2.6 hat nur eine kleine Seitenlücke zwischen dem Stack und dem Heap, was zu Stack-Gap-Attacken führen kann, die seit 2005 bekannt sind. Siehe What exception is raised in C by GCC -fstack-check option für den Zusammenbau. Es ist in gcc mindestens seit 2.95.3, in clang seit 3.6 aktiviert.
__stack_chk_fail
ist der eingefügte Code -fstack-protector
, der einen eingefügten Stapelkanarienwert verifiziert, der durch einen einfachen Stapelüberlauf, z. durch Rekursion.
können Sie mit einigen Codebeispielen und Ausgabe erarbeiten? –
Das hat nichts mit Ihrem Fehler zu tun. Siehe meine Antwort unten – rurban