commit | e1132a9c2ff5a039fcdd33694fe42bd245d2fca8 | [log] [tgz] |
---|---|---|
author | David Anderson <dvander@google.com> | Wed Jul 19 23:03:54 2023 -0700 |
committer | David Anderson <dvander@google.com> | Wed Jul 19 23:05:58 2023 -0700 |
tree | fa0e69cda43265b1199c63e5249690138c98a50e | |
parent | 4a33c22c77c09d993d24b0831cf45399d76cc6b4 [diff] |
snapuserd: Fix ubsan when reading a single aligned sector. When a read request is for a single sector, and the sector is block-aligned, it falls into the ReadAlignedSector path, which assumes block-sized reads. Fix this by clamping the expected size. Bug: 291862304 Test: manual test of ReadWorker::ReadAlignedSector full OTA Change-Id: I00e460c333e8a9a4dc2433443e3633f3d794da1d
diff --git a/fs_mgr/libsnapshot/snapuserd/user-space-merge/read_worker.cpp b/fs_mgr/libsnapshot/snapuserd/user-space-merge/read_worker.cpp index 7268fca..7d2e3a6 100644 --- a/fs_mgr/libsnapshot/snapuserd/user-space-merge/read_worker.cpp +++ b/fs_mgr/libsnapshot/snapuserd/user-space-merge/read_worker.cpp
@@ -305,7 +305,7 @@ return false; } - ret = BLOCK_SZ; + ret = std::min(BLOCK_SZ, read_size); } read_size -= ret;