Fix unsigned type sub overflow issue when isntall DSU
writer->size() is block size aligned and could be bigger than remaining_bytes If remaining_bytes is bigger, set remaining_bytes to 0 to avoid sub overflow error. Bug: 136727859 Test: Successfully install a DSU Change-Id: If493b0f206561239caec2ee234f7cfd70bf927a7
This commit is contained in:
parent
c538656d7d
commit
089941c800
1 changed files with 3 additions and 2 deletions
|
|
@ -95,8 +95,9 @@ std::unique_ptr<SplitFiemap> SplitFiemap::Create(const std::string& file_path, u
|
|||
// To make sure the alignment doesn't create too much inconsistency, we
|
||||
// account the *actual* size, not the requested size.
|
||||
total_bytes_written += writer->size();
|
||||
remaining_bytes -= writer->size();
|
||||
|
||||
// writer->size() is block size aligned and could be bigger than remaining_bytes
|
||||
// If remaining_bytes is bigger, set remaining_bytes to 0 to avoid underflow error.
|
||||
remaining_bytes = remaining_bytes > writer->size() ? (remaining_bytes - writer->size()) : 0;
|
||||
out->AddFile(std::move(writer));
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue