sendmsg: Fix padding for ControlMessages, and zero it rather than leave it uninitialised #874
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.
I hit a valgrind complaint sending a single fd over a single ControlMessage. Nix was handing a length including padding to the
sendmsg
syscall, but the padding bytes were unaddressable (i.e. not just uninitialised, but after the end of the Vec, which is not good).This fixes that. It possibly fixes/affects #756, as the old behaviour of not padding between ControlMessages despite the padded length being what's passed to the syscall seemed wrong. That however is yet to be tested.
Feel free to not accept until I/someone else gets a chance to more thoroughly test, I'm making it so that if someone else bumps into this problem they have something to go on in the meantime.