diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-08-14 02:05:28 +0200 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-08-14 02:05:28 +0200 |
commit | 335575b91a7aa8de1a60b23139524bb9bb17e596 (patch) | |
tree | f30ba0ebb445e680baa921adb874ac9da7753655 | |
parent | 72853f6e5b03e0535fc1c70198f56e6fe76eb687 (diff) |
memcpy ipv6 tunnel addresses somewhat correctly
-rw-r--r-- | netlinkd_sys/Cargo.toml | 2 | ||||
-rw-r--r-- | netlinkd_sys/build.rs | 1 | ||||
-rw-r--r-- | netlinkd_sys/netlinkd/netlinkd.c | 6 |
3 files changed, 5 insertions, 4 deletions
diff --git a/netlinkd_sys/Cargo.toml b/netlinkd_sys/Cargo.toml index e34ff65..371c1c2 100644 --- a/netlinkd_sys/Cargo.toml +++ b/netlinkd_sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rsdsl_netlinkd_sys" -version = "0.4.2" +version = "0.4.3" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/netlinkd_sys/build.rs b/netlinkd_sys/build.rs index 5e722c7..b84f764 100644 --- a/netlinkd_sys/build.rs +++ b/netlinkd_sys/build.rs @@ -5,6 +5,7 @@ fn main() { println!("cargo:rerun-if-changed=netlinkd/netlinkd.c"); cc::Build::new() + .flag("-Wno-stringop-overflow") .file("netlinkd/netlinkd.c") .compile("netlinkd"); diff --git a/netlinkd_sys/netlinkd/netlinkd.c b/netlinkd_sys/netlinkd/netlinkd.c index 13bc454..d24f0c2 100644 --- a/netlinkd_sys/netlinkd/netlinkd.c +++ b/netlinkd_sys/netlinkd/netlinkd.c @@ -79,11 +79,11 @@ int netlinkd_create_4in6( struct ip_tunnel_parm p; strcpy(p.name, tnlname); - p.iph.version = 2; + p.iph.version = 0; p.iph.ihl = 0; p.iph.protocol = IPPROTO_IP; - p.iph.saddr = saddr[0]; - p.iph.daddr = daddr[0]; + memcpy(&p.iph.saddr, saddr, 16); + memcpy(&p.iph.daddr, daddr, 16); p.link = if_nametoindex(ifmaster); if (!p.link) { |