aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2021-06-18 07:43:21 +0000
committerMarc-André Lureau <marcandre.lureau@gmail.com>2021-06-18 07:43:21 +0000
commit76da4cca02e8dbdcb60e6365576073017f652293 (patch)
treebef584a56bd96808619fc3cb425e11c3da307a64
parent6ef66db79938d763212320c1b64bc562c23d25a8 (diff)
parentc9f314f6e315a5518432761fea864196a290f799 (diff)
downloadslirp-76da4cca02e8dbdcb60e6365576073017f652293.zip
slirp-76da4cca02e8dbdcb60e6365576073017f652293.tar.gz
slirp-76da4cca02e8dbdcb60e6365576073017f652293.tar.bz2
Merge branch 'fix-48' into 'master'
Fix "DHCP broken in libslirp v4.6.0" Closes #48 See merge request slirp/libslirp!95
-rw-r--r--src/bootp.c4
1 files changed, 3 insertions, 1 deletions
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);
}