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.
Structures returned by the OS will always be correctly aligned. However, security software that impersonates the OS APIs isn't always bug free so we sometimes need to workaround issues such as wrong alignments. In this case we currently do a lot of
read_unalignedand allocate a new buffer for filenames to workaround a bug in some security software that could cause issues. We can simplify by just copying unaligned data to the (no longer used) start of the buffer, which is guaranteed to be aligned because it was aligned by us.The specific issue this was working around in a popular sandbox software has long since been fixed. However, it is possible that other such security software may suffer from the same bug so no harm in keeping the mitigation I guess. I also added a debug assert to test for this as it does indicate a bug, just not with Rust itself. It is a case that should never happen.