Misaligned dereference when compiling with nightly rust
Running RUST_BACKTRACE=1 cargo +nightly t --all-features
gives the following panic in tests:
warning: field `quiet` is never read
--> src/main.rs:76:5
|
48 | struct Opt {
| --- field in this struct
...
76 | quiet: bool,
| ^^^^^
|
= note: `Opt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
= note: `#[warn(dead_code)]` on by default
warning: `sha1collisiondetection` (bin "sha1cdsum" test) generated 1 warning
warning: `sha1collisiondetection` (bin "sha1cdsum") generated 1 warning (1 duplicate)
Finished test [unoptimized + debuginfo] target(s) in 0.01s
Running unittests lib/lib.rs (target/debug/deps/sha1collisiondetection-991d51a3ba0c4de9)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/main.rs (target/debug/deps/sha1cdsum-36c63c6750ce15db)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running tests/nist_cavs_short_msg.rs (target/debug/deps/nist_cavs_short_msg-ffdd805b009599f8)
running 1 test
thread 'nist_cavs_short_msg' panicked at 'misaligned pointer dereference: address must be a multiple of 0x4 but is 0x55a6c333bd85', lib/sha1.rs:320:27
stack backtrace:
0: rust_begin_unwind
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/panicking.rs:584:5
1: core::panicking::panic_fmt
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/core/src/panicking.rs:67:14
2: core::panicking::panic_misaligned_pointer_dereference
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/core/src/panicking.rs:174:5
3: sha1collisiondetection::sha1::sha1compress_full_round1_step_load
at ./lib/sha1.rs:320:27
4: sha1collisiondetection::sha1::sha1_compression_states
at ./lib/sha1.rs:645:5
5: sha1collisiondetection::sha1::sha1_process
at ./lib/sha1.rs:2320:5
6: sha1collisiondetection::sha1::sha1_process_unaligned
at ./lib/sha1.rs:51:9
7: sha1collisiondetection::sha1::SHA1DCUpdate
at ./lib/sha1.rs:2535:9
8: sha1collisiondetection::Sha1CD::update
at ./lib/lib.rs:271:13
9: nist_cavs_short_msg::nist_cavs_short_msg
at ./tests/nist_cavs_short_msg.rs:266:5
10: nist_cavs_short_msg::nist_cavs_short_msg::{{closure}}
at ./tests/nist_cavs_short_msg.rs:8:26
11: core::ops::function::FnOnce::call_once
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/core/src/ops/function.rs:250:5
12: core::ops::function::FnOnce::call_once
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'nist_cavs_short_msg' panicked at 'panic in a function that cannot unwind', library/core/src/panicking.rs:126:5
stack backtrace:
0: 0x55a6c330fb63 - std::backtrace_rs::backtrace::libunwind::trace::h527d8d64d53ade2d
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x55a6c330fb63 - std::backtrace_rs::backtrace::trace_unsynchronized::hfb55b01517dd6379
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x55a6c330fb63 - std::sys_common::backtrace::_print_fmt::hd134e914eea0bd97
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/sys_common/backtrace.rs:65:5
3: 0x55a6c330fb63 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h1480db11ec399d77
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/sys_common/backtrace.rs:44:22
4: 0x55a6c3334bef - core::fmt::write::h67ec4c4171c92b26
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/core/src/fmt/mod.rs:1247:17
5: 0x55a6c330d211 - std::io::Write::write_fmt::h3b12aef0fff2463b
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/io/mod.rs:1712:15
6: 0x55a6c330f975 - std::sys_common::backtrace::_print::h584400135abdbd51
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/sys_common/backtrace.rs:47:5
7: 0x55a6c330f975 - std::sys_common::backtrace::print::hce41d3c8bd91096b
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/sys_common/backtrace.rs:34:9
8: 0x55a6c33114ef - std::panicking::default_hook::{{closure}}::h2043b657a3791225
9: 0x55a6c33111a7 - std::panicking::default_hook::h99252b8d3dd5719c
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/panicking.rs:293:9
10: 0x55a6c32c5ed4 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::ha16f6533b1094de1
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/alloc/src/boxed.rs:1976:9
11: 0x55a6c32c5ed4 - test::test_main::{{closure}}::h67addf4c04345588
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/test/src/lib.rs:134:21
12: 0x55a6c3311b95 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h222a2b674b9f4762
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/alloc/src/boxed.rs:1976:9
13: 0x55a6c3311b95 - std::panicking::rust_panic_with_hook::h7f49b36bf7f8ff77
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/panicking.rs:704:13
14: 0x55a6c33118c0 - std::panicking::begin_panic_handler::{{closure}}::haa23a7352589e31e
15: 0x55a6c330ffa6 - std::sys_common::backtrace::__rust_end_short_backtrace::h3d0cf6e3c96e3fe9
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/sys_common/backtrace.rs:150:18
16: 0x55a6c3311602 - rust_begin_unwind
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/panicking.rs:584:5
17: 0x55a6c328aaa3 - core::panicking::panic_nounwind_fmt::h781631583e4f3f84
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/core/src/panicking.rs:96:14
18: 0x55a6c328ab51 - core::panicking::panic_nounwind::hd7f6853fb73a682d
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/core/src/panicking.rs:126:5
19: 0x55a6c328ace3 - core::panicking::panic_cannot_unwind::h1a394ea87d9d28da
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/core/src/panicking.rs:188:5
20: 0x55a6c32d1465 - sha1collisiondetection::sha1::sha1compress_full_round1_step_load::hca5aabd266a0debd
at /home/soso-nitrokey/Code/sha1collisiondetection/lib/sha1.rs:310:1
21: 0x55a6c32d3b73 - sha1collisiondetection::sha1::sha1_compression_states::h7a96582cec9784bd
at /home/soso-nitrokey/Code/sha1collisiondetection/lib/sha1.rs:645:5
22: 0x55a6c32dd27b - sha1collisiondetection::sha1::sha1_process::h2194d1221f409599
at /home/soso-nitrokey/Code/sha1collisiondetection/lib/sha1.rs:2320:5
23: 0x55a6c32cf8b8 - sha1collisiondetection::sha1::sha1_process_unaligned::hebe220aa07462f02
at /home/soso-nitrokey/Code/sha1collisiondetection/lib/sha1.rs:51:9
24: 0x55a6c32dedd8 - sha1collisiondetection::sha1::SHA1DCUpdate::h459312e500279af8
at /home/soso-nitrokey/Code/sha1collisiondetection/lib/sha1.rs:2535:9
25: 0x55a6c32e0634 - sha1collisiondetection::Sha1CD::update::he7061fcd49e3be9e
at /home/soso-nitrokey/Code/sha1collisiondetection/lib/lib.rs:271:13
26: 0x55a6c3291409 - nist_cavs_short_msg::nist_cavs_short_msg::hd8e618d8d79919c1
at /home/soso-nitrokey/Code/sha1collisiondetection/tests/nist_cavs_short_msg.rs:266:5
27: 0x55a6c328c237 - nist_cavs_short_msg::nist_cavs_short_msg::{{closure}}::ha39557d97eca02f3
at /home/soso-nitrokey/Code/sha1collisiondetection/tests/nist_cavs_short_msg.rs:8:26
28: 0x55a6c328c6b5 - core::ops::function::FnOnce::call_once::h9761ec5a436177e5
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/core/src/ops/function.rs:250:5
29: 0x55a6c32caf1f - core::ops::function::FnOnce::call_once::h7b643aab1b0292b1
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/core/src/ops/function.rs:250:5
30: 0x55a6c32caf1f - test::__rust_begin_short_backtrace::hc52ba41804ffafc9
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/test/src/lib.rs:655:18
31: 0x55a6c3297e8c - test::run_test::{{closure}}::h242402627e27ae6f
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/test/src/lib.rs:646:30
32: 0x55a6c3297e8c - core::ops::function::FnOnce::call_once{{vtable.shim}}::hd9b6a4127f3b532f
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/core/src/ops/function.rs:250:5
33: 0x55a6c32c9f2a - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h56c7b153f57177e8
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/alloc/src/boxed.rs:1962:9
34: 0x55a6c32c9f2a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h4f84bd0d25b7a6ea
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/core/src/panic/unwind_safe.rs:271:9
35: 0x55a6c32c9f2a - std::panicking::try::do_call::hffc5e9b8aa9efa73
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/panicking.rs:490:40
36: 0x55a6c32c9f2a - std::panicking::try::h5be885500b64505e
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/panicking.rs:454:19
37: 0x55a6c32c9f2a - std::panic::catch_unwind::h361e821febb51abd
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/panic.rs:140:14
38: 0x55a6c32c9f2a - test::run_test_in_process::h13c2b8066c7b11f9
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/test/src/lib.rs:678:27
39: 0x55a6c32c9f2a - test::run_test::run_test_inner::{{closure}}::hbcdecf4a1f741507
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/test/src/lib.rs:572:39
40: 0x55a6c3292455 - test::run_test::run_test_inner::{{closure}}::he38161d719449571
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/test/src/lib.rs:599:37
41: 0x55a6c3292455 - std::sys_common::backtrace::__rust_begin_short_backtrace::h45f73b07524a7196
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/sys_common/backtrace.rs:134:18
42: 0x55a6c3297cc1 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h6faf39a9a0c64d35
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/thread/mod.rs:526:17
43: 0x55a6c3297cc1 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hf728346ba3b68921
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/core/src/panic/unwind_safe.rs:271:9
44: 0x55a6c3297cc1 - std::panicking::try::do_call::h9ad23345e2b8ea3c
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/panicking.rs:490:40
45: 0x55a6c3297cc1 - std::panicking::try::h6ec3b9e04b4148c6
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/panicking.rs:454:19
46: 0x55a6c3297cc1 - std::panic::catch_unwind::ha6231ac85036d1b2
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/panic.rs:140:14
47: 0x55a6c3297cc1 - std::thread::Builder::spawn_unchecked_::{{closure}}::he4f151a82691ee85
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/thread/mod.rs:525:30
48: 0x55a6c3297cc1 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h674ab3d84fd1520a
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/core/src/ops/function.rs:250:5
49: 0x55a6c3315ff5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hf15d802f31f86225
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/alloc/src/boxed.rs:1962:9
50: 0x55a6c3315ff5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hac564355b46c52d6
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/alloc/src/boxed.rs:1962:9
51: 0x55a6c3315ff5 - std::sys::unix::thread::Thread::new::thread_start::h86fb3aedb7811f07
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/sys/unix/thread.rs:108:17
52: 0x7faccadb5bb5 - <unknown>
53: 0x7faccae37d90 - <unknown>
54: 0x0 - <unknown>
thread caused non-unwinding panic. aborting.
error: test failed, to rerun pass `--test nist_cavs_short_msg`
Caused by:
process didn't exit successfully: `/home/soso-nitrokey/Code/sha1collisiondetection/target/debug/deps/nist_cavs_short_msg-ffdd805b009599f8` (signal: 6, SIGABRT: process abort signal)
It's also caught on the latest beta.