Last active
December 21, 2015 15:19
-
-
Save rye/6325694 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
\documentclass[12pt,letterpaper]{article} | |
\usepackage{amsmath} | |
\usepackage{setspace} | |
\begin{document} | |
\begin{center} | |
{\Huge{\textbf{Prevent Memory Errors}}} | |
{\textit{Watch For and Prevent These Things in Your Code, to be Nice to Your Computer}} | |
\end{center} | |
\begin{description} | |
\item[Buffer Overflow] Out-of-bounds memory modification which can corrupt the content of adjacent objects, or internal data. | |
\item[Dynamic Memory Errors] Incorrect management of dynamic memory and pointers | |
\begin{description} | |
\item[Dangling Pointers] A pointer storing the address of a block of memory that has been freed. | |
\item[Double Frees] Repeating calls to free on the same pointer, causing freelist-based allocaators to fail. | |
\item[Invalid Free] Trying to free an invalid address, sometimes causing undefined behavior. | |
\item[Null Pointer Accesses] Trying to access an address of ``NULL'' (usually protected-against by the runtime or operating system, or any combination thereof) | |
\end{description} | |
\item[Uninitalized variables] A variable which has not been assigned (may contain garbage or a corrupt value). | |
\begin{description} | |
\item[Wild Pointers] When a pointer has not been set to a known block of memory and points to something unknown. Similar to dangling pointers, though harder to detect. | |
\end{description} | |
\item[Out-of-Memory Errors] | |
\begin{description} | |
\item[Stack Overflow] When the stack runs out of stack-space, usually because of too-deep recursion. | |
\item[Allocation Failures] When the program tries to allocate more memory than available, or cannot seamlessly allocate to the requested size. | |
\end{description} | |
\end{description} | |
\end{document} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment