An MSE message indicates that your program is attempting to address a piece of memory that spans potentially non-contiguous segments of memory. The segments identified include the text segment, the data segment, the heap, the stack and memory mapped regions.
An MSE message can be caused by any of the following:
Calling a string or block-copy function with too large a size on a block of memory near the end of the data segment, so that the access spills into the heap. For example, calling strlen for a string not properly terminated can have this effect.
Incorrect size calculation for read or write buffers, leading to requests for transactions with buffers of negative or large size.
Infinite recursion, causing stack overflow.