diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2021-06-21 07:40:39 +0000 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2021-06-21 07:40:39 +0000 |
commit | f3c5eea002a6257996319c6398beab5c63fb316b (patch) | |
tree | 0f9a92b81d2c6815891ba4b989a630d23226b673 | |
parent | 146ff910d4b62837c11c65a30c7257ab02d17d0f (diff) | |
parent | d7fb54218424c3b2517aee5b391ced0f75386a5d (diff) | |
download | slirp-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.c | 6 |
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); } |