aboutsummaryrefslogtreecommitdiff
path: root/src/client/windows/crash_generation/crash_generation_server.cc
diff options
context:
space:
mode:
authorivan.penkov@gmail.com <ivan.penkov@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e>2013-05-20 18:55:54 +0000
committerivan.penkov@gmail.com <ivan.penkov@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e>2013-05-20 18:55:54 +0000
commite4d3cca3efe386a9d87849dc64e686eb2339fec1 (patch)
treedd9b812121eedbe9f1b136ed06431b8daeef2d8f /src/client/windows/crash_generation/crash_generation_server.cc
parentEnsure a proper LinuxDumper::crash_thread_ value (diff)
downloadbreakpad-e4d3cca3efe386a9d87849dc64e686eb2339fec1.tar.xz
Submitting this on behalf of Xiaoling Bao.
Make custom info population before dump generation as an optional operation. This is part of a security change to move the crash generation and upload out of Google updater process. Review URL: https://breakpad.appspot.com/586003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1186 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/client/windows/crash_generation/crash_generation_server.cc')
-rw-r--r--src/client/windows/crash_generation/crash_generation_server.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/client/windows/crash_generation/crash_generation_server.cc b/src/client/windows/crash_generation/crash_generation_server.cc
index 676dec2d..b98fb5e0 100644
--- a/src/client/windows/crash_generation/crash_generation_server.cc
+++ b/src/client/windows/crash_generation/crash_generation_server.cc
@@ -116,7 +116,8 @@ CrashGenerationServer::CrashGenerationServer(
server_state_(IPC_SERVER_STATE_UNINITIALIZED),
shutting_down_(false),
overlapped_(),
- client_info_(NULL) {
+ client_info_(NULL),
+ pre_fetch_custom_info_(true) {
InitializeCriticalSection(&sync_);
if (dump_path) {
@@ -198,7 +199,7 @@ CrashGenerationServer::~CrashGenerationServer() {
if (overlapped_.hEvent) {
CloseHandle(overlapped_.hEvent);
}
-
+
DeleteCriticalSection(&sync_);
}
@@ -831,10 +832,12 @@ void CALLBACK CrashGenerationServer::OnPipeConnected(void* context, BOOLEAN) {
void CALLBACK CrashGenerationServer::OnDumpRequest(void* context, BOOLEAN) {
assert(context);
ClientInfo* client_info = reinterpret_cast<ClientInfo*>(context);
- client_info->PopulateCustomInfo();
CrashGenerationServer* crash_server = client_info->crash_server();
assert(crash_server);
+ if (crash_server->pre_fetch_custom_info_) {
+ client_info->PopulateCustomInfo();
+ }
crash_server->HandleDumpRequest(*client_info);
ResetEvent(client_info->dump_requested_handle());