Alexander Snarskii developed a FreeBSD patch [22] that does similar integrity checks to those used by the Canary variant of StackGuard. However, these integrity checks were non-portable, hard-coded in assembler, and embedded in libc. This method protects against stack smashing attacks inside libc, but is not as general as StackGuard.