The recent Windows .Ani file stack overflow has a lot of people asking the same question. How did Microsoft’s SDL process miss or punt this bug? Why did the compiler’s /GS not protect the function?
Michael Howard gives explanation as to why /GS did not protect this type of function, and how it can actually be made to.