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:
Since Rust 1.70 using stable-i686-pc-windows-msvc on Windows, calling:
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.