Commit 2aa57793 authored by Kuo-Hsin Yang's avatar Kuo-Hsin Yang Committed by Commit Bot

CrOS: Fix dividing by zero in CalculateAvailableMemoryUserSpaceKB

When the ram_vs_swap_weight file is not available, the ram_swap_weight
varialbe is zero. CalculateAvailableMemoryUserSpaceKB uses the
ram_swap_weight variable as denominator and crashes. Always set
ram_swap_weight to non-zero value to avoid the dividing by zero issue.

Bug: b/171033232
Change-Id: I82e2cfd28ea21e57f3e6dd40f8cd68ee9f265c4d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2503914
Commit-Queue: Brian Geffon <bgeffon@chromium.org>
Reviewed-by: default avatarBrian Geffon <bgeffon@chromium.org>
Cr-Commit-Position: refs/heads/master@{#821714}
parent 3644ea30
...@@ -24,6 +24,9 @@ constexpr char kMinFilelist[] = "/proc/sys/vm/min_filelist_kbytes"; ...@@ -24,6 +24,9 @@ constexpr char kMinFilelist[] = "/proc/sys/vm/min_filelist_kbytes";
constexpr char kRamVsSwapWeight[] = constexpr char kRamVsSwapWeight[] =
"/sys/kernel/mm/chromeos-low_mem/ram_vs_swap_weight"; "/sys/kernel/mm/chromeos-low_mem/ram_vs_swap_weight";
// The default value if the ram_vs_swap_weight file is not available.
constexpr uint64_t kRamVsSwapWeightDefault = 4;
// The extra free to trigger kernel memory reclaim earlier. // The extra free to trigger kernel memory reclaim earlier.
constexpr char kExtraFree[] = "/proc/sys/vm/extra_free_kbytes"; constexpr char kExtraFree[] = "/proc/sys/vm/extra_free_kbytes";
...@@ -233,6 +236,8 @@ void UpdateMemoryParameters() { ...@@ -233,6 +236,8 @@ void UpdateMemoryParameters() {
reserved_free = GetReservedMemoryKB(); reserved_free = GetReservedMemoryKB();
min_filelist = ReadFileToUint64(base::FilePath(kMinFilelist)); min_filelist = ReadFileToUint64(base::FilePath(kMinFilelist));
ram_swap_weight = ReadFileToUint64(base::FilePath(kRamVsSwapWeight)); ram_swap_weight = ReadFileToUint64(base::FilePath(kRamVsSwapWeight));
if (ram_swap_weight == 0)
ram_swap_weight = kRamVsSwapWeightDefault;
} }
} // namespace pressure } // namespace pressure
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment