summaryrefslogtreecommitdiff
path: root/0001-Fix-DHCP-broken-in-libslirp-v4.6.0.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-Fix-DHCP-broken-in-libslirp-v4.6.0.patch')
-rw-r--r--0001-Fix-DHCP-broken-in-libslirp-v4.6.0.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/0001-Fix-DHCP-broken-in-libslirp-v4.6.0.patch b/0001-Fix-DHCP-broken-in-libslirp-v4.6.0.patch
new file mode 100644
index 0000000..bd4e685
--- /dev/null
+++ b/0001-Fix-DHCP-broken-in-libslirp-v4.6.0.patch
@@ -0,0 +1,30 @@
+From c9f314f6e315a5518432761fea864196a290f799 Mon Sep 17 00:00:00 2001
+From: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
+Date: Thu, 17 Jun 2021 18:01:32 +0900
+Subject: [PATCH] Fix "DHCP broken in libslirp v4.6.0"
+
+Fix issue 48
+
+Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
+---
+ src/bootp.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/bootp.c b/src/bootp.c
+index cafa1eb..0a35873 100644
+--- a/src/bootp.c
++++ b/src/bootp.c
+@@ -359,7 +359,9 @@ static void bootp_reply(Slirp *slirp,
+
+ daddr.sin_addr.s_addr = 0xffffffffu;
+
+- m->m_len = sizeof(struct bootp_t) - sizeof(struct ip) - sizeof(struct udphdr);
++ assert ((q - rbp->bp_vend + 1) <= DHCP_OPT_LEN);
++
++ m->m_len = sizeof(struct bootp_t) + (q - rbp->bp_vend + 1) - sizeof(struct ip) - sizeof(struct udphdr);
+ udp_output(NULL, m, &saddr, &daddr, IPTOS_LOWDELAY);
+ }
+
+--
+2.29.0
+