diff options
author | Alex Buynytskyy <alexbuy@google.com> | 2022-08-18 15:36:11 -0700 |
---|---|---|
committer | Alex Buynytskyy <alexbuy@google.com> | 2022-09-13 18:29:48 +0000 |
commit | c82569e37a745665549df5a77159a0584b45e7d5 (patch) | |
tree | 26407752cac0d85f13f5b12e738e4e77c975b52e | |
parent | ff0fd902a0f652bf95491264e39d764180ea967e (diff) | |
download | incremental_delivery-c82569e37a745665549df5a77159a0584b45e7d5.tar.gz |
Fix for invalid memory access.android-13.0.0_r82android-13.0.0_r81android-13.0.0_r80android-13.0.0_r74android-13.0.0_r73android-13.0.0_r72android-13.0.0_r66android-13.0.0_r65android-13.0.0_r64android-13.0.0_r60android-13.0.0_r59android-13.0.0_r58android13-qpr3-c-s8-releaseandroid13-qpr3-c-s7-releaseandroid13-qpr3-c-s6-releaseandroid13-qpr3-c-s5-releaseandroid13-qpr3-c-s4-releaseandroid13-qpr3-c-s3-releaseandroid13-qpr3-c-s2-releaseandroid13-qpr3-c-s12-releaseandroid13-qpr3-c-s11-releaseandroid13-qpr3-c-s10-releaseandroid13-qpr3-c-s1-release
Bug: 241081524
Bug: 228222508
Fixes: 241081524
Fixes: 228222508
Test: lunch raven_hwasan-userdebug; m; atest libincfs-test
Change-Id: I89895051edde23e11d35a171ae8ac9dccb5e1a0b
(cherry picked from commit ae8b228b3e5bc7c2331fdf7bc2b837bac8bae52c)
-rw-r--r-- | incfs/MountRegistry.cpp | 3 | ||||
-rw-r--r-- | incfs/include/incfs_inline.h | 2 | ||||
-rw-r--r-- | incfs/tests/util/map_ptr_test.cpp | 2 |
3 files changed, 4 insertions, 3 deletions
diff --git a/incfs/MountRegistry.cpp b/incfs/MountRegistry.cpp index 4f16f73..376eaf2 100644 --- a/incfs/MountRegistry.cpp +++ b/incfs/MountRegistry.cpp @@ -355,7 +355,8 @@ bool MountRegistry::Mounts::loadFrom(base::borrowed_fd fd, std::string_view file if (mount.backing.empty()) { mount.backing = std::move(backingDir); } else if (mount.backing != backingDir) { - LOG(WARNING) << "[incfs] root '" << *mount.roots.begin() + LOG(WARNING) << "[incfs] root '" + << (!mount.roots.empty() ? *mount.roots.begin() : "<unknown>") << "' mounted in multiple places with different backing dirs, '" << mount.backing << "' vs new '" << backingDir << "'; updating to the new one"; diff --git a/incfs/include/incfs_inline.h b/incfs/include/incfs_inline.h index f3d1e89..545a735 100644 --- a/incfs/include/incfs_inline.h +++ b/incfs/include/incfs_inline.h @@ -306,9 +306,9 @@ inline std::pair<ErrorCode, FilledRanges> getFilledRanges(int fd, } inline std::pair<ErrorCode, FilledRanges> getFilledRanges(int fd, FilledRanges&& resumeFrom) { + auto totalRanges = resumeFrom.dataRanges().size() + resumeFrom.hashRanges().size(); auto rawRanges = resumeFrom.internalRawRanges(); auto buffer = resumeFrom.extractInternalBufferAndClear(); - auto totalRanges = resumeFrom.dataRanges().size() + resumeFrom.hashRanges().size(); auto remainingSpace = buffer.size() - totalRanges; const bool loadAll = remainingSpace == 0; int res; diff --git a/incfs/tests/util/map_ptr_test.cpp b/incfs/tests/util/map_ptr_test.cpp index c78d91d..f9c96aa 100644 --- a/incfs/tests/util/map_ptr_test.cpp +++ b/incfs/tests/util/map_ptr_test.cpp @@ -325,4 +325,4 @@ TEST_F(MapPtrTest, GetDataAfterClose) { auto p1 = map->data().offset(missing_page_start).convert<uint32_t>(); ASSERT_FALSE(p1); ASSERT_SIGBUS(p1.value()); -}
\ No newline at end of file +} |