- // Apply the "helpful master" concept if possible
- if (SplitPointStack[slave][Threads[slave].activeSplitPoints - 1].slaves[master])
+ // Apply the "helpful master" concept if possible. Use localActiveSplitPoints
+ // that is known to be > 0, instead of Threads[slave].activeSplitPoints that
+ // could have been set to 0 by another thread leading to an out of bound access.
+ if (SplitPointStack[slave][localActiveSplitPoints - 1].slaves[master])