-
-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
Checklist
- I did not find a duplicate of this bug in the Github Issues section.
Description
I get an exception reporting an out of bound index when running a program using bpstd::string_view which runs fine with a current g++/c++-stdlib. I traced the issue
to an erroneous setup of the upper limit in the for loop present in string_view::find.
Instead of increments = size() - v.size() the code should read increments = size() - v.size() - pos.
I cannot push to the repository, but I can provide a patch.
[email protected]
Steps to reproduce
Compile and run the following code:
#include <bpstd/string_view.hpp>
#include <iostream>
using namespace bpstd;
int main() {
string_view n("name.i");
string_view s(".");
string_view::size_type it(0);
while ( it != string_view::npos ) {
std::cout << it << std::endl;
it = n.find(s,it+1);
}
}Expected Behavior
I expect the program to find the one missing match at position 4 and then exit. The
output are the two digits 0 and 4 separated by a newline.
Actual Behavior
The program reports an out of bounds access in string_view::find
Extra information
current master branch, tests compile and run without errors.
- Library version: 1.2
- Operating System: debian testing
- Compiler: g++ 11.2
Metadata
Metadata
Assignees
Labels
No labels