From d0c668aa0ad255c3598267816154874541ac2943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Thu, 29 Jul 2021 04:56:42 -0400 Subject: [PATCH 12/14] Fix "DHCP broken in libslirp v4.6.0" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RH-Author: Marc-André Lureau Message-id: <20210708082537.1550263-9-marcandre.lureau@redhat.com> Patchwork-id: 101824 O-Subject: [RHEL-8.5.0 qemu-kvm PATCH 8/8] Fix "DHCP broken in libslirp v4.6.0" Bugzilla: 1970819 1970835 1970843 1970853 RH-Acked-by: Stefano Garzarella RH-Acked-by: Eric Blake RH-Acked-by: Stefan Hajnoczi From: Akihiro Suda Fix issue 48 Signed-off-by: Akihiro Suda (cherry picked from commit c9f314f6e315a5518432761fea864196a290f799) [ minor conflict fix due to indentation change ] Signed-off-by: Marc-André Lureau Signed-off-by: Miroslav Rezanina --- slirp/src/bootp.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/slirp/src/bootp.c b/slirp/src/bootp.c index 5789187166..3e4af075f1 100644 --- a/slirp/src/bootp.c +++ b/slirp/src/bootp.c @@ -354,14 +354,14 @@ 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; + daddr.sin_addr.s_addr = 0xffffffffu; -m->m_len = sizeof(struct bootp_t) - sizeof(struct ip) - sizeof(struct udphdr); -udp_output(NULL, m, &saddr, &daddr, IPTOS_LOWDELAY); + 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); } void bootp_input(struct mbuf *m) -- 2.27.0