diff options
| author | Jon <[email protected]> | 2015-12-22 16:20:05 -0800 |
|---|---|---|
| committer | Jon <[email protected]> | 2015-12-22 16:20:05 -0800 |
| commit | a4ad8067ebffdecbf67b916c4185c116e8fd8757 (patch) | |
| tree | 048f43f8fa9c3e99d3df224146b1f7c9611e5529 /setup/devcon/devcon.cpp | |
| parent | c4ba9c629505328d040d318a6193b966d7dbc800 (diff) | |
Avoid 0x80000003 on 32-bit Windows in msnmntr.
The exception occurs in MonitorCoStreamFlowDeletion, but the bug is in MonitorCoCreateFlowContext.
In 32-bit Windows, the high bit of kernel mode pointers is set, and the pointer value is 0x80000000 or above. Casting 0x80000000 to a UINT64 yields 0xffffffff80000000 because of sign extension. ULongLongToULongPtr converts 0xffffffff80000000 to 0xffffffff. Boom.
Cast using an intermediate uintptr_t to avoid the sign extension in the first place.
Diffstat (limited to 'setup/devcon/devcon.cpp')
0 files changed, 0 insertions, 0 deletions
