Merge "Fix ubsan failure in android::base::Split."
This commit is contained in:
commit
aa9548dbb4
|
@ -37,6 +37,9 @@ cc_library {
|
|||
cppflags: libbase_cppflags,
|
||||
export_include_dirs: ["include"],
|
||||
shared_libs: ["liblog"],
|
||||
sanitize: {
|
||||
misc_undefined: ["integer"],
|
||||
},
|
||||
target: {
|
||||
android: {
|
||||
srcs: [
|
||||
|
@ -97,6 +100,9 @@ cc_test {
|
|||
"strings_test.cpp",
|
||||
"test_main.cpp",
|
||||
],
|
||||
sanitize: {
|
||||
misc_undefined: ["integer"],
|
||||
},
|
||||
target: {
|
||||
android: {
|
||||
srcs: [
|
||||
|
|
|
@ -36,11 +36,12 @@ std::vector<std::string> Split(const std::string& s,
|
|||
|
||||
size_t base = 0;
|
||||
size_t found;
|
||||
do {
|
||||
while (true) {
|
||||
found = s.find_first_of(delimiters, base);
|
||||
result.push_back(s.substr(base, found - base));
|
||||
if (found == s.npos) break;
|
||||
base = found + 1;
|
||||
} while (found != s.npos);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -251,3 +251,7 @@ TEST(strings, EqualsIgnoreCase) {
|
|||
ASSERT_FALSE(android::base::EqualsIgnoreCase("foo", "bar"));
|
||||
ASSERT_FALSE(android::base::EqualsIgnoreCase("foo", "fool"));
|
||||
}
|
||||
|
||||
TEST(strings, ubsan_28729303) {
|
||||
android::base::Split("/dev/null", ":");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue