The program performs an out-of-bounds read or write operation. In addition to causing program instability, techniques exist which may allow an attacker to use this vulnerability to execute arbitrary code.
+The program performs an out-of-bounds read or write operation, which can cause program instability. In addition, attackers may take advantage of the situation, and implement techniques to use this vulnerability to execute arbitrary code.
The first example allocates a buffer of size size and creates a local variable that stores the location that is one byte past the end of the allocation.
-This local variable is then dereferenced which results in an out-of-bounds write.
+This local variable is then dereferenced, which results in an out-of-bounds write.
The second example subtracts one from the end variable before dereferencing it. This subtraction ensures that the write correctly updates the final byte of the allocation.
For example, the behavior of Dictionary when a write happens concurrently with another write or a read is
-undefined, and frequently leads to data corruption and can lead to ​ issues as serious as livelock.
+undefined, and frequently leads to data corruption and can lead to issues as serious as livelock.