An SBR message indicates that your program is about to read across stack frame boundaries. This is similar to an ABR, but concerns a local variable instead of a malloc'd block.
An SBR error can be caused by any of the following:
Making an automatic array too small, for example, failing to account for the terminating NULL in a string
Forgetting to multiply by sizeof(type) when allocating for an array of objects
Using an array index that is too large or negative
Failing to NULL terminate a string
Being off by one in copying elements up or down an array
Passing too few arguments to a function
On SPARC systems, Purify also detects access across stack frames. Purify does not support SBR messages on IRIX or HP-UX.
Note:
If the 'off-by-one' read in the example does not cause an SBR message on your system, your compiler may be padding the local variables, or it may be allocating them in a different order than the example presumes.