From: Jan Kiszka Date: Wed, 20 Jul 2011 10:20:15 +0000 (+0200) Subject: slirp: Strictly associate DHCP/BOOTP and TFTP with virtual host X-Git-Tag: v0.15.0-rc0~30 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5a82362ad0bf06bba3377d63ca0ecd05fb74f322;p=thirdparty%2Fqemu.git slirp: Strictly associate DHCP/BOOTP and TFTP with virtual host Instead of accepting every DHCP/BOOTP and TFTP packet, only invoke the built-in servers if the target is the virtual host. Signed-off-by: Jan Kiszka Signed-off-by: Anthony Liguori --- diff --git a/slirp/udp.c b/slirp/udp.c index f1a9a109484..cefd50b7924 100644 --- a/slirp/udp.c +++ b/slirp/udp.c @@ -120,15 +120,18 @@ udp_input(register struct mbuf *m, int iphlen) /* * handle DHCP/BOOTP */ - if (ntohs(uh->uh_dport) == BOOTP_SERVER) { - bootp_input(m); - goto bad; - } + if (ntohs(uh->uh_dport) == BOOTP_SERVER && + (ip->ip_dst.s_addr == slirp->vhost_addr.s_addr || + ip->ip_dst.s_addr == 0xffffffff)) { + bootp_input(m); + goto bad; + } /* * handle TFTP */ - if (ntohs(uh->uh_dport) == TFTP_SERVER) { + if (ntohs(uh->uh_dport) == TFTP_SERVER && + ip->ip_dst.s_addr == slirp->vhost_addr.s_addr) { tftp_input(m); goto bad; }