-fstack-check
: दो सुविधा मैक्रो STACK_CHECK_BUILTIN
और STACK_CHECK_STATIC_BUILTIN
डिफ़ॉल्ट 0 पर छोड़ दिया जाता है, यह सिर्फ एक शून्य बाइट सम्मिलित करता है हर 4KB (पेज) जब ढेर बढ़ता है। डिफ़ॉल्ट रूप से केवल एक, लेकिन जब स्टैक एक से अधिक पृष्ठों को विकसित कर सकता है, जो सबसे खतरनाक मामला है, हर 4 केबी। लिनक्स> 2.6 में केवल स्टैक और ढेर के बीच केवल एक छोटा सा पृष्ठ अंतर है, जो 2005 से ज्ञात स्टैक-गैप हमलों का कारण बन सकता है। असेंबली के लिए What exception is raised in C by GCC -fstack-check option देखें। यह 3.6 से कम से कम 2.95.3 के बाद जीसीसी में सक्षम है।
__stack_chk_fail
डाला गया -fstack-protector
कोड जो डाला गया स्टैक कैनरी मान सत्यापित करता है जिसे एक साधारण स्टैक ओवरफ़्लो द्वारा ओवरराइट किया जा सकता है, उदा। रिकर्सन द्वारा।
क्या आप कुछ कोड उदाहरण और आउटपुट के साथ विस्तार कर सकते हैं? –
इसमें आपकी त्रुटि से कोई लेना देना नहीं है। नीचे मेरा जवाब देखें – rurban