In computer security and programming, a buffer overflow, or buffer overrun, is an anomaly where a program, while writing data to a buffer, overruns the buffer's boundary and overwrites adjacent memory. This is a special case of violation of memory safety.
Buffer overflows can be triggered by inputs that are designed to execute code, or alter the way the program operates. This may result in erratic program behavior, including memory access errors, incorrect results, a crash, or a breach of system security. Thus, they are the basis of many software vulnerabilities and can be maliciously exploited.
Programming languages commonly associated with buffer overflows include C and C++, which provide no built-in protection against accessing or overwriting data in any part of memory and do not automatically check that data written to an array (the built-in buffer type) is within the boundaries of that array. Bounds checking can prevent buffer overflows.
Read more about Buffer Overflow: Technical Description, Exploitation, Protective Countermeasures, History
Famous quotes containing the word overflow:
“A mans interest in the world is only the overflow from his interest in himself. When you are a child your vessel is not yet full; so you care for nothing but your own affairs. When you grow up, your vessel overflows; and you are a politician, a philosopher, or an explorer and adventurer. In old age the vessel dries up: there is no overflow: you are a child again.”
—George Bernard Shaw (18561950)