ntapi icon indicating copy to clipboard operation
ntapi copied to clipboard

reference to packed field is unaligned

Open CheetoTrump opened this issue 2 years ago • 5 comments

Ive tried ntapi = "0.4.1" ntapi = "0.4.0" ntapi = "0.3.7"

and 32bit and 64bit for each version

I get these errors when compiling the crate

error[E0793]: reference to packed field is unaligned --> C:\Users\USER.cargo\registry\src\index.crates.io-6f17d22bba15001f\ntapi-0.3.7\src\ntexapi.rs:2783:52 | 2783 | *tick_count.QuadPart_mut() = read_volatile(&(*USER_SHARED_DATA).u.TickCountQuad); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: packed structs are only aligned by one byte, and many modern architectures penalize unaligned field accesses = note: creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) = help: copy the field contents to a local variable, or replace the reference with a raw pointer and use read_unaligned/write_unaligned (loads and stores via *p must be properly aligned even when using raw pointers)

error[E0793]: reference to packed field is unaligned --> C:\Users\USER.cargo\registry\src\index.crates.io-6f17d22bba15001f\ntapi-0.3.7\src\ntexapi.rs:2807:25 | 2807 | ((read_volatile(&(*USER_SHARED_DATA).u.TickCountQuad).wrapping_mul((*USER_SHARED_DATA).TickCountMultiplier as u64)) >> 24) as u32 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: packed structs are only aligned by one byte, and many modern architectures penalize unaligned field accesses = note: creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) = help: copy the field contents to a local variable, or replace the reference with a raw pointer and use read_unaligned/write_unaligned (loads and stores via *p must be properly aligned even when using raw pointers)

For more information about this error, try rustc --explain E0793. error: could not compile ntapi (lib) due to 2 previous errors

CheetoTrump avatar Jun 10 '23 07:06 CheetoTrump

This was fixed in the 0.4 release. From the paths in the logs above, you're still using ntapi-0.3.7

eminence avatar Jun 16 '23 19:06 eminence

I don't quite get it, why is Cargo/the compiler still using version 0.3.7 of the lib even if one has set explicitly ntapi = "0.4" in Cargo.toml

acf-patrick avatar Jun 22 '23 05:06 acf-patrick

You probably have some other dependency that is requiring 0.3.7 (so both 0.3.7 and 0.4.x are brought into your crate graph).

Try running cargo tree -i ntapi to see all the packages that depend on ntapi

eminence avatar Jun 22 '23 12:06 eminence

i should have sent all 3 errors but i didnt, they were 1:1 but different versions of ntapi

CheetoTrump avatar Jul 02 '23 19:07 CheetoTrump

cargo update may help in such cases

Gordon01 avatar Sep 02 '23 22:09 Gordon01