| Index: util/win/registration_protocol_win.cc
|
| diff --git a/util/win/registration_protocol_win.cc b/util/win/registration_protocol_win.cc
|
| index a4a3c1c89449d163ebd9b26c38d0aef285198d01..3e0fdf213985a4bc81ae295bd3377140463045da 100644
|
| --- a/util/win/registration_protocol_win.cc
|
| +++ b/util/win/registration_protocol_win.cc
|
| @@ -17,6 +17,7 @@
|
| #include <windows.h>
|
|
|
| #include "base/logging.h"
|
| +#include "util/win/scoped_handle.h"
|
|
|
| namespace crashpad {
|
|
|
| @@ -25,26 +26,27 @@ bool SendToCrashHandlerServer(const base::string16& pipe_name,
|
| crashpad::ServerToClientMessage* response) {
|
| int tries = 5;
|
| while (tries > 0) {
|
| - HANDLE pipe = CreateFile(pipe_name.c_str(),
|
| - GENERIC_READ | GENERIC_WRITE,
|
| - 0,
|
| - nullptr,
|
| - OPEN_EXISTING,
|
| - SECURITY_SQOS_PRESENT | SECURITY_IDENTIFICATION,
|
| - nullptr);
|
| - if (pipe == INVALID_HANDLE_VALUE) {
|
| + ScopedFileHANDLE pipe(
|
| + CreateFile(pipe_name.c_str(),
|
| + GENERIC_READ | GENERIC_WRITE,
|
| + 0,
|
| + nullptr,
|
| + OPEN_EXISTING,
|
| + SECURITY_SQOS_PRESENT | SECURITY_IDENTIFICATION,
|
| + nullptr));
|
| + if (!pipe.is_valid()) {
|
| Sleep(10);
|
| --tries;
|
| continue;
|
| }
|
| DWORD mode = PIPE_READMODE_MESSAGE;
|
| - if (!SetNamedPipeHandleState(pipe, &mode, nullptr, nullptr)) {
|
| + if (!SetNamedPipeHandleState(pipe.get(), &mode, nullptr, nullptr)) {
|
| PLOG(ERROR) << "SetNamedPipeHandleState";
|
| return false;
|
| }
|
| DWORD bytes_read = 0;
|
| BOOL result = TransactNamedPipe(
|
| - pipe,
|
| + pipe.get(),
|
| // This is [in], but is incorrectly declared non-const.
|
| const_cast<crashpad::ClientToServerMessage*>(&message),
|
| sizeof(message),
|
|
|