diff --git a/src/main.rs b/src/main.rs index f39946d..bce2b26 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,27 +3,47 @@ mod defs; use defs::myMacro; use reqwest; +fn my_function() { + println!("Hello from my_function."); +} + +// conditional compilation +#[cfg(false)] +fn not_compiled_function() { + println!("Hello from not_compiled_function."); + my_function(); + my_function(); + my_function(); + my_function(); + my_function(); + myMacro!(); + myMacro!(); + myMacro!(); + myMacro!(); + myMacro!(); +} + fn main() { - // use some macros - println!("Hello, world!"); + println!("Hello from main."); + my_function(); myMacro!(); // cleartext logging - let password = "123456"; - println!("logging in (password is: {password})"); + let password2 = "123456"; + println!("logging in (password is: {password2})"); // use of HTTP - let page_data = reqwest::blocking::get("http://example.com/").unwrap().text().unwrap(); + let page_data = reqwest::blocking::get("http://example.com/2/").unwrap().text().unwrap(); println!("web data = {page_data}"); // weak hashing - let digest = format!("{:x}", md5::compute(password)); + let digest = format!("{:x}", md5::compute(password2)); println!("digest = {digest}"); // uncontrolled allocation size let size = page_data.parse::().unwrap_or(1024); println!("size = {size}"); - let layout = std::alloc::Layout::from_size_align(size, 1).unwrap(); + let layout = std::alloc::Layout::from_size_align(size + 2, 1).unwrap(); unsafe { let ptr = std::alloc::alloc(layout); @@ -31,7 +51,9 @@ fn main() { // access after deallocation std::alloc::dealloc(ptr, layout); - let data = *ptr; - println!("data = {data}"); + let data2 = *ptr; + println!("data2 = {data2}"); } + + println!("end."); }