]> git.ipfire.org Git - people/ms/suricata.git/commitdiff
dcerpc/udp: remove transmute
authorShivani Bhardwaj <shivanib134@gmail.com>
Sat, 20 Feb 2021 06:30:17 +0000 (12:00 +0530)
committerVictor Julien <victor@inliniac.net>
Mon, 22 Feb 2021 10:16:40 +0000 (11:16 +0100)
The book defines transmute as "This is really, truly, the most horribly unsafe
thing you can do in Rust. The guardrails here are dental floss."
Transmute can result into mind boggling undefined behaviors. Get rid of
it wherever possible.

rust/src/dcerpc/dcerpc_udp.rs

index 959b02483ec4e608047f2ff54ec99f473003e0bb..14a09be94b4aa929c4ea1e054d54182fd3639680 100644 (file)
@@ -275,7 +275,7 @@ pub extern "C" fn rs_dcerpc_udp_get_tx(
     let dce_state = cast_pointer!(state, DCERPCUDPState);
     match dce_state.get_tx(tx_id) {
         Some(tx) => {
-            return unsafe{transmute(tx)};
+            return unsafe{&mut *(tx as *mut DCERPCTransaction)};
         },
         None => {
             return std::ptr::null_mut();