Index: util/win/exception_handler_server.cc |
diff --git a/util/win/exception_handler_server.cc b/util/win/exception_handler_server.cc |
index 50a5fa3c509021cb4fe28eb6bf875e34bd243e83..bcdec6a21d43b10ed14b077bc0b6f2d69ebb5038 100644 |
--- a/util/win/exception_handler_server.cc |
+++ b/util/win/exception_handler_server.cc |
@@ -17,6 +17,7 @@ |
#include <string.h> |
#include "base/logging.h" |
+#include "base/numerics/safe_conversions.h" |
#include "base/rand_util.h" |
#include "base/strings/stringprintf.h" |
#include "base/strings/utf_string_conversions.h" |
@@ -351,7 +352,7 @@ bool ExceptionHandlerServer::ServiceClientConnection( |
PLOG(ERROR) << "ImpersonateNamedPipeClient"; |
return false; |
} |
- HANDLE client_process = OpenProcess( |
+ client_process = OpenProcess( |
kXPProcessAllAccess, false, message.registration.client_process_id); |
PCHECK(RevertToSelf()); |
if (!client_process) { |
@@ -375,8 +376,9 @@ bool ExceptionHandlerServer::ServiceClientConnection( |
// Duplicate the events back to the client so they can request a dump. |
ServerToClientMessage response; |
- response.registration.request_report_event = reinterpret_cast<uint32_t>( |
- DuplicateEvent(client->process(), client->dump_requested_event())); |
+ response.registration.request_report_event = |
+ base::checked_cast<uint32_t>(reinterpret_cast<uintptr_t>( |
+ DuplicateEvent(client->process(), client->dump_requested_event()))); |
if (!LoggingWriteFile(service_context.pipe(), &response, sizeof(response))) |
return false; |