Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Convert winapi transmute to internal union handling #67

Merged
merged 1 commit into from
Oct 29, 2022

Conversation

SonicZentropy
Copy link
Contributor

Fixes #64

In general, Rust 1.64 added a forced panic to std::mem::transmute_copy if the destination struct is larger than the source, as it is technically UB. InputBot was using this mechanism to convert keyboard or mouse input to the INPUT_u union, which ALWAYS triggers the panic.

This fixes everything as far as I can tell, BUT it is the first unsafe code I've ever written, so please please please don't merge unless someone else is also confident it doesn't explode! This does seem like the intended method the winapi crate wants people to use, though

Copy link
Owner

@obv-mikhail obv-mikhail left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thanks for the contribution 👍

@obv-mikhail obv-mikhail merged commit 50428a1 into obv-mikhail:develop Oct 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Panic on Rust 1.64.0
2 participants