fix subscript out of range in autovector.h #379
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In "autovector.h", the length of the std::vector
dat_
is equal to1+maxi_-mini_+miniloc_
, therefore in the expressiondat_[1+maxi_-mini_+miniloc_]
the subscript definitely goes out of range.Previously this issue causes no error because on Linux and on mac
std::vector
does not perform a bound check and returns whatever in the memory as the out-of-range element. Theend()
thus obtained still points to the correct memory, however, the above behaviour is undefined and should be avoided.The fixes are easy.