My concern is the definition of buffer overrun. Looks like it only applies to writing outside the buffer.
But recently we found a spectacular bug when the program attempted to read from outside the legally allocated block of memory and ran into undefined behavior - either crashed with access violation or sent unrelated data across the network. Obviously reading from outside the buffer is not good as well.
Does reading from outside the buffer count as buffer overrun? If not - how can it be called?