You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
897 B
30 lines
897 B
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 |
|
|
|
|