Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 09b26cc3 authored by James Hawkins's avatar James Hawkins Committed by android-build-merger
Browse files

bootstat: Fix a potential unhandled exception for malformed input.

am: f85554e1

Change-Id: Ieef7d6a359370c16e2473b9fe0251ba133cdda71
parents 0c8f0e83 f85554e1
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@
#include <utility>
#include <android-base/file.h>
#include <android-base/logging.h>
#include <android-base/parseint.h>
#include "histogram_logger.h"
#include "uptime_parser.h"

@@ -57,9 +58,11 @@ bool ParseRecordEventTime(const std::string& path, int32_t* uptime) {

  // Ignore existing bootstat records (which do not contain file content).
  if (!content.empty()) {
    int32_t value = std::stoi(content);
    int32_t value;
    if (android::base::ParseInt(content.c_str(), &value)) {
      bootstat::LogHistogram("bootstat_mtime_matches_content", value == *uptime);
    }
  }

  return true;
}
+9 −1
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@
#include <memory>
#include <string>
#include <android-base/logging.h>
#include <android-base/parseint.h>
#include <cutils/properties.h>
#include <log/log.h>
#include "boot_event_record_store.h"
@@ -147,7 +148,10 @@ std::string CalculateBootCompletePrefix() {
  std::string boot_complete_prefix = "boot_complete";

  std::string build_date_str = GetProperty("ro.build.date.utc");
  int32_t build_date = std::stoi(build_date_str);
  int32_t build_date;
  if (!android::base::ParseInt(build_date_str.c_str(), &build_date)) {
    return std::string();
  }

  BootEventRecordStore boot_event_store;
  BootEventRecordStore::BootEventRecord record;
@@ -171,6 +175,10 @@ void RecordBootComplete() {
  // ota_boot_complete.  The latter signifies that the device is booting after
  // a system update.
  std::string boot_complete_prefix = CalculateBootCompletePrefix();
  if (boot_complete_prefix.empty()) {
    // The system is hosed because the build date property could not be read.
    return;
  }

  // post_decrypt_time_elapsed is only logged on encrypted devices.
  if (boot_event_store.GetBootEvent("post_decrypt_time_elapsed", &record)) {