messense / if-addrs

Retrieve IP addresses for all interfaces. POSIX & Windows
BSD 3-Clause "New" or "Revised" License
22 stars 15 forks source link

misaligned pointer dereference #29

Closed WilfredC64 closed 1 year ago

WilfredC64 commented 1 year ago

Since Rust 1.70 using stable-i686-pc-windows-msvc on Windows, calling:

if_addrs::get_if_addrs()

results in the following error in debug mode:

thread 'main' panicked at 'misaligned pointer dereference: address must be a multiple of 0x8 but is 0x14bc664', ..cargo\registry\src\index.crates.io-1cd66030c949c28d\if-addrs-0.10.1\src\windows.rs:194:26 stack backtrace: 0: std::panicking::begin_panic_handler at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library\std\src\panicking.rs:578 1: core::panicking::panic_fmt at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library\core\src\panicking.rs:67 2: core::panicking::panic_misaligned_pointer_dereference at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library\core\src\panicking.rs:174 3: if_addrs::windows::impl$5::next at ..cargo\registry\src\index.crates.io-1cd66030c949c28d\if-addrs-0.10.1\src\windows.rs:194 4: if_addrs::getifaddrs_windows::get_if_addrs at ..cargo\registry\src\index.crates.io-1cd66030c949c28d\if-addrs-0.10.1\src\lib.rs:235 5: if_addrs::get_if_addrs at ..cargo\registry\src\index.crates.io-1cd66030c949c28d\if-addrs-0.10.1\src\lib.rs:359

This has to do with the following change in Rust 1.70:

https://github.com/rust-lang/rust/pull/98112

The issue doesn't occur in older version of Rust.

WilfredC64 commented 1 year ago

Issue is solved in Rust 1.71