1 2 3 4 5 6 7 8 9 10 11 12
#include <stdint.h> #define STACK_CHK_GUARD \ ({ uintptr_t x; asm ("movl %%gs:0x14, %0" : "=r" (x)); x; }) #define POINTER_CHK_GUARD \ ({ \ uintptr_t x; \ asm ("movl %%gs:%c1, %0" : "=r" (x) \ : "i" (offsetof (tcbhead_t, pointer_guard))); \ x; \ })