metrics: metrics_daemon: avoid division by zero

Don't send ratio samples when the ratio
doesn't exist.

BUG=chromium:692271
TEST=none

Change-Id: I8c37c460b4d0953aa9b1cd0a6c20d6082bb2d05b
Reviewed-on: https://chromium-review.googlesource.com/442628
Commit-Ready: Luigi Semenzato <semenzato@chromium.org>
Tested-by: Luigi Semenzato <semenzato@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
(cherry picked from commit f542bb4a0513a44ec70e9c03847b25ed88171cd3)
Reviewed-on: https://chromium-review.googlesource.com/468530
Reviewed-by: Luigi Semenzato <semenzato@chromium.org>
Commit-Queue: Luigi Semenzato <semenzato@chromium.org>
diff --git a/metrics/metrics_daemon.cc b/metrics/metrics_daemon.cc
index 5eeb6e7..dcf5aff 100644
--- a/metrics/metrics_daemon.cc
+++ b/metrics/metrics_daemon.cc
@@ -865,7 +865,6 @@
 
   const int compr_data_size_mb = compr_data_size >> 20;
   const int savings_mb = (orig_data_size - compr_data_size) >> 20;
-  const int zero_ratio_percent = zero_pages * page_size * 100 / orig_data_size;
 
   // Report compressed size in megabytes.  100 MB or less has little impact.
   SendSample("Platform.ZramCompressedSize", compr_data_size_mb, 100, 4000, 50);
@@ -880,7 +879,11 @@
   // The values of interest for zero_pages are between 1MB and 1GB.  The units
   // are number of pages.
   SendSample("Platform.ZramZeroPages", zero_pages, 256, 256 * 1024, 50);
-  SendSample("Platform.ZramZeroRatioPercent", zero_ratio_percent, 1, 50, 50);
+  // Send ratio sample only when the ratio exists.
+  if (orig_data_size > 0) {
+    const int zero_percent = zero_pages * page_size * 100 / orig_data_size;
+    SendSample("Platform.ZramZeroRatioPercent", zero_percent, 1, 50, 50);
+  }
 
   return true;
 }