aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-08-14 02:05:28 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-08-14 02:05:28 +0200
commit335575b91a7aa8de1a60b23139524bb9bb17e596 (patch)
treef30ba0ebb445e680baa921adb874ac9da7753655
parent72853f6e5b03e0535fc1c70198f56e6fe76eb687 (diff)
memcpy ipv6 tunnel addresses somewhat correctly
-rw-r--r--netlinkd_sys/Cargo.toml2
-rw-r--r--netlinkd_sys/build.rs1
-rw-r--r--netlinkd_sys/netlinkd/netlinkd.c6
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) {