aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2021-06-21 07:40:39 +0000
committerMarc-André Lureau <marcandre.lureau@gmail.com>2021-06-21 07:40:39 +0000
commitf3c5eea002a6257996319c6398beab5c63fb316b (patch)
tree0f9a92b81d2c6815891ba4b989a630d23226b673
parent146ff910d4b62837c11c65a30c7257ab02d17d0f (diff)
parentd7fb54218424c3b2517aee5b391ced0f75386a5d (diff)
downloadslirp-f3c5eea002a6257996319c6398beab5c63fb316b.zip
slirp-f3c5eea002a6257996319c6398beab5c63fb316b.tar.gz
slirp-f3c5eea002a6257996319c6398beab5c63fb316b.tar.bz2
Merge branch 'dhcp-fix' into 'master'
dhcp: Always send DHCP_OPT_LEN bytes in options Closes #51 See merge request slirp/libslirp!97
-rw-r--r--src/bootp.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/bootp.c b/src/bootp.c
index 0a35873..d78d61b 100644
--- a/src/bootp.c
+++ b/src/bootp.c
@@ -355,13 +355,13 @@ static void bootp_reply(Slirp *slirp,
q += sizeof(nak_msg) - 1;
}
assert(q < end);
- *q = RFC1533_END;
+ *q++ = RFC1533_END;
daddr.sin_addr.s_addr = 0xffffffffu;
- assert ((q - rbp->bp_vend + 1) <= DHCP_OPT_LEN);
+ assert(q <= end);
- m->m_len = sizeof(struct bootp_t) + (q - rbp->bp_vend + 1) - sizeof(struct ip) - sizeof(struct udphdr);
+ m->m_len = sizeof(struct bootp_t) + (end - rbp->bp_vend) - sizeof(struct ip) - sizeof(struct udphdr);
udp_output(NULL, m, &saddr, &daddr, IPTOS_LOWDELAY);
}