You must log in or register to comment.
The only way to make Rust segfault is by performing unsafe operations.
Challange accepted. The following Rust code technically segfaults:
fn stackover(a : i64) -> i64 { return stackover(a); } fn main() { println!("{}", stackover(100)); }
A stack overflow is technically a segmentation violation. At least on linux the program recives the SIGSEGV signal. This compiles and I am no rust dev but this does not use
unsafe
code, right?While the compiler shows a warning, the error message the program prints when run is not very helpfull IMHO:
thread 'main' has overflowed its stack fatal runtime error: stack overflow [1] 45211 IOT instruction (core dumped) ../target/debug/rust
Edit: Even the compiler warning can be tricked by making it do recusion in pairs:
fn stackover_a(a : i64) -> i64 { return stackover_b(a); } fn stackover_b(a : i64) -> i64 { return stackover_a(a); } fn main() { println!("{}", stackover_a(100)); }
Fair point.