Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 09980cd1 authored by Elliott Hughes's avatar Elliott Hughes Committed by android-build-merger
Browse files

Merge "Fix ubsan failure in android::base::Split."

am: aa9548db

Change-Id: Iaa8593f981db12b65a6eb13fddf5e894f58ca7a7
parents 07af3285 aa9548db
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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: [
+3 −2
Original line number Diff line number Diff line
@@ -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;
}
+4 −0
Original line number Diff line number Diff line
@@ -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", ":");
}