summaryrefslogtreecommitdiff
path: root/src/VBox/Devices/Network/slirp/udp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/Devices/Network/slirp/udp.c')
-rw-r--r--src/VBox/Devices/Network/slirp/udp.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/VBox/Devices/Network/slirp/udp.c b/src/VBox/Devices/Network/slirp/udp.c
index 10685f95..e8ec3056 100644
--- a/src/VBox/Devices/Network/slirp/udp.c
+++ b/src/VBox/Devices/Network/slirp/udp.c
@@ -4,7 +4,7 @@
*/
/*
- * Copyright (C) 2006-2010 Oracle Corporation
+ * Copyright (C) 2006-2012 Oracle Corporation
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
@@ -123,7 +123,6 @@ udp_input(PNATState pData, register struct mbuf *m, int iphlen)
* If not enough data to reflect UDP length, drop.
*/
len = RT_N2H_U16((u_int16_t)uh->uh_ulen);
- Assert((ip->ip_len == len));
Assert((ip->ip_len + iphlen == m_length(m, NULL)));
if (ip->ip_len != len)
@@ -132,6 +131,7 @@ udp_input(PNATState pData, register struct mbuf *m, int iphlen)
{
udpstat.udps_badlen++;
Log3(("NAT: IP(id: %hd) has bad size\n", ip->ip_id));
+ goto bad_free_mbuf;
}
m_adj(m, len - ip->ip_len);
ip->ip_len = len;
@@ -277,7 +277,7 @@ udp_input(PNATState pData, register struct mbuf *m, int iphlen)
* DNS proxy
*/
if ( pData->fUseDnsProxy
- && (ip->ip_dst.s_addr == RT_H2N_U32(RT_N2H_U32(pData->special_addr.s_addr) | CTL_DNS))
+ && CTL_CHECK(ip->ip_dst.s_addr, CTL_DNS)
&& (uh->uh_dport == RT_H2N_U16_C(53)))
{
dnsproxy_query(pData, so, m, iphlen);