Skip to content

Commit

Permalink
fix srs_string_replace deap loop when new_str inclue old_str (#2580)
Browse files Browse the repository at this point in the history
  • Loading branch information
chen-guanghua authored Sep 4, 2021
1 parent 6bb11a7 commit 714e182
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 0 deletions.
1 change: 1 addition & 0 deletions trunk/src/kernel/srs_kernel_utility.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,7 @@ string srs_string_replace(string str, string old_str, string new_str)
size_t pos = 0;
while ((pos = ret.find(old_str, pos)) != std::string::npos) {
ret = ret.replace(pos, old_str.length(), new_str);
pos += new_str.length();
}

return ret;
Expand Down
9 changes: 9 additions & 0 deletions trunk/src/utest/srs_utest_kernel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2079,6 +2079,15 @@ VOID TEST(KernelUtilityTest, UtilityString)
str1 = srs_string_replace(str, "o", "XX");
EXPECT_STREQ("HellXX, WXXrld! HellXX, SRS!", str1.c_str());

// origin_str == old_str
std::string origin_str = "xxd";
str1 = srs_string_replace(origin_str, "xxd", "x1d");
EXPECT_STREQ("x1d", str1.c_str());

// new_str include old_str.
str1 = srs_string_replace(str, "Hello", "HelloN");
EXPECT_STREQ("HelloN, World! HelloN, SRS!", str1.c_str());

str1 = srs_string_trim_start(str, "x");
EXPECT_STREQ("Hello, World! Hello, SRS!", str1.c_str());

Expand Down

0 comments on commit 714e182

Please sign in to comment.