Fix overflow issue when computing ideal size of scratch partition
The type of f_frsize is `unsigned long` which is 32 bit for some system so it will overflow after multiplied by f_bfree. This solution adds one more type casting to ensure the type is 64 bit unsigned integer during the computing. Bug: 281599020 Test: adb root; adb shell disable-verity Change-Id: I377ed722d5e245c235c3ae12ff66ac7e91d1d6e8
This commit is contained in:
parent
34de747570
commit
702a779edb
1 changed files with 1 additions and 1 deletions
|
@ -1083,7 +1083,7 @@ static inline uint64_t GetIdealDataScratchSize() {
|
|||
return 0;
|
||||
}
|
||||
|
||||
auto ideal_size = std::min(super_info.size, uint64_t(s.f_frsize * s.f_bfree * 0.85));
|
||||
auto ideal_size = std::min(super_info.size, uint64_t(uint64_t(s.f_frsize) * s.f_bfree * 0.85));
|
||||
|
||||
// Align up to the filesystem block size.
|
||||
if (auto remainder = ideal_size % s.f_bsize; remainder > 0) {
|
||||
|
|
Loading…
Reference in a new issue