Index: sandbox/win/tests/common/controller.cc |
diff --git a/sandbox/win/tests/common/controller.cc b/sandbox/win/tests/common/controller.cc |
index 4f90fb4f051798b80638b6ab512d550c130c5b2b..8d3e29dd9600bf643b55cdc46b01d2fe89a70baa 100644 |
--- a/sandbox/win/tests/common/controller.cc |
+++ b/sandbox/win/tests/common/controller.cc |
@@ -8,6 +8,7 @@ |
#include "base/memory/shared_memory.h" |
#include "base/process/process.h" |
+#include "base/process/process_handle.h" |
#include "base/strings/string_number_conversions.h" |
#include "base/strings/sys_string_conversions.h" |
#include "base/win/windows_version.h" |
@@ -304,11 +305,12 @@ int DispatchCall(int argc, wchar_t **argv) { |
// If the caller shared a shared memory handle with us attempt to open it |
// in read only mode and sleep infinitely if we succeed. |
if (0 == _wcsicmp(argv[3], L"shared_memory_handle")) { |
- base::SharedMemoryHandle shared_handle = NULL; |
- base::StringToUint( |
- argv[4], reinterpret_cast<unsigned int*>(&shared_handle)); |
- if (shared_handle == NULL) |
+ HANDLE raw_handle = nullptr; |
+ base::StringToUint(argv[4], reinterpret_cast<unsigned int*>(&raw_handle)); |
+ if (raw_handle == nullptr) |
return SBOX_TEST_INVALID_PARAMETER; |
+ base::SharedMemoryHandle shared_handle(raw_handle, |
+ base::GetCurrentProcId()); |
base::SharedMemory read_only_view(shared_handle, true); |
if (!read_only_view.Map(0)) |
return SBOX_TEST_INVALID_PARAMETER; |