Merge "String16::remove - avoid overflow"

This commit is contained in:
Steven Moreland 2020-05-28 20:06:34 +00:00 committed by Android (Google) Code Review
commit fcd8ed55cb
2 changed files with 15 additions and 1 deletions

View file

@ -441,7 +441,7 @@ status_t String16::remove(size_t len, size_t begin)
mString = getEmptyString();
return OK;
}
if ((begin+len) > N) len = N-begin;
if (len > N || len > N - begin) len = N - begin;
if (begin == 0 && len == N) {
return OK;
}

View file

@ -90,6 +90,13 @@ TEST(String16Test, Insert) {
EXPECT_STR16EQ(u"VerifyInsert me", tmp);
}
TEST(String16Test, RemoveDefault) {
String16 tmp("Verify me");
tmp.remove(4);
EXPECT_EQ(4U, tmp.size());
EXPECT_STR16EQ(u"Veri", tmp);
}
TEST(String16Test, Remove) {
String16 tmp("Verify me");
tmp.remove(2, 6);
@ -97,6 +104,13 @@ TEST(String16Test, Remove) {
EXPECT_STR16EQ(u" m", tmp);
}
TEST(String16Test, RemoveOutOfBounds) {
String16 tmp("Verify me");
tmp.remove(100, 6);
EXPECT_EQ(3U, tmp.size());
EXPECT_STR16EQ(u" me", tmp);
}
TEST(String16Test, MakeLower) {
String16 tmp("Verify Me!");
tmp.makeLower();