Explicitly cast to 64bit integer when calculating filesystem size

Else the result may overflow on platforms that have 32bit long.

Bug: 165925766
Test: Presubmit
Change-Id: I3018f0bd9846651848bd9b3645f2eeaa5b61c646
This commit is contained in:
Yi-Yo Chiang 2021-02-12 15:55:50 +08:00 committed by Yo Chiang
parent ec1b09fca9
commit 67e3bbc7f6

View file

@ -194,7 +194,7 @@ bool fs_mgr_filesystem_has_space(const std::string& mount_point) {
static constexpr unsigned long kSizeThreshold = 8 * 1024 * 1024; // 8MB
return (vst.f_bfree >= (vst.f_blocks * kPercentThreshold / 100)) &&
(vst.f_bfree * vst.f_bsize) >= kSizeThreshold;
(static_cast<uint64_t>(vst.f_bfree) * vst.f_frsize) >= kSizeThreshold;
}
const auto kPhysicalDevice = "/dev/block/by-name/"s;