Fix segfault if high-entropy 64-bit ASLR is enabled #28
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If the High-entropy ASLR setting is enabled on Windows,
win32/dir
will segfault when callingSHGetFileInfo
.Enabling high-entropy ASLR will cause processes to use the entire 64-bit address space, and the
long
data type is not large enough to hold a 64-bit address for the PIDL structure (which is the first argument ofSHGetFileInfo
[1]). As a result, the call segfaults.[1] https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shgetfileinfow
Description
Change the parameter's data type to
uint64
to ensure the PIDL address will always fit.Issues Resolved
https://tickets.puppetlabs.com/browse/PUP-10622
Check List