#define INT_MAX 2147483647
#define INT_MIN (-INT_MAX-1)
int main()
{
int secret = 0x12345678;
int array[1] = {0};
printf("%d",array[INT_MIN+1]);
} The code run without stack protector.
the question is about integer overflow, but i dont understand why it work because the value of INT_MIN + 1 is -2147483647. and if i want to print the value of secret, I need to write: array[-1]