Figure 3 TUNnCTLON Provcogue alla function_epilogue functions have been altered to emit code to place and check canary words. The changes are architecture-specific (in our case, 1386), but since the total changes to the gcc code generator are under 100 lines, portability is not a major concern. All the changes in the gcc calling conventions are undertaken by the callee, so code compiled with the StackGuard-enhanced gcc is completely inter-opera- ble with generic gcc .o files and libraries. The addi- tional instructions added to the function prologue are shown in pseudo-assembly form in Figure 3, and the additional instructions added to the instruction epi- logue are shown in Figure 3.