crashpad/snapshot/crashpad_info_client_options.cc
Petr Hosek 4dbd8c75d5 Fix issues revealed by -ftrivial-auto-var-init=pattern
-ftrivial-auto-var-init=pattern automatically initializes all variables
with a pattern. This revealed two issues:

1. Unitialized read of field from CrashpadInfoClientOptions.
2. The PC distance check in TestCaptureContext (due to additional
instrumentation, the distance is now 76 on x86-64 and 92 on aarch64).

Change-Id: I528e5f21c70d2849c9300776da783fde59411e9e
Reviewed-on: https://chromium-review.googlesource.com/c/1471691
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2019-02-14 16:41:57 +00:00

47 lines
1.6 KiB
C++

// Copyright 2015 The Crashpad Authors. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include "snapshot/crashpad_info_client_options.h"
#include "base/logging.h"
#include "client/crashpad_info.h"
namespace crashpad {
// static
TriState CrashpadInfoClientOptions::TriStateFromCrashpadInfo(
uint8_t crashpad_info_tri_state) {
switch (crashpad_info_tri_state) {
case static_cast<uint8_t>(TriState::kUnset):
return TriState::kUnset;
case static_cast<uint8_t>(TriState::kEnabled):
return TriState::kEnabled;
case static_cast<uint8_t>(TriState::kDisabled):
return TriState::kDisabled;
default:
LOG(WARNING) << "unknown TriState "
<< static_cast<int>(crashpad_info_tri_state);
return TriState::kUnset;
}
}
CrashpadInfoClientOptions::CrashpadInfoClientOptions()
: crashpad_handler_behavior(TriState::kUnset),
system_crash_reporter_forwarding(TriState::kUnset),
gather_indirectly_referenced_memory(TriState::kUnset),
indirectly_referenced_memory_cap(0) {
}
} // namespace crashpad