Changeset 30350 in vbox
- Timestamp:
- Jun 22, 2010 2:39:23 AM (14 years ago)
- Location:
- trunk/src/VBox/Devices/Network/slirp
- Files:
-
- 4 edited
-
ip_input.c (modified) (2 diffs)
-
slirp.c (modified) (2 diffs)
-
tcp_input.c (modified) (1 diff)
-
udp.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Network/slirp/ip_input.c
r30016 r30350 121 121 int rc; 122 122 STAM_PROFILE_START(&pData->StatALIAS_input, b); 123 rc = LibAliasIn(select_alias(pData, m), mtod(m, char *), m ->m_len);123 rc = LibAliasIn(select_alias(pData, m), mtod(m, char *), m_length(m, NULL)); 124 124 STAM_PROFILE_STOP(&pData->StatALIAS_input, b); 125 125 Log2(("NAT: LibAlias return %d\n", rc)); … … 196 196 { 197 197 icmp_error(pData, m, ICMP_TIMXCEED, ICMP_TIMXCEED_INTRANS, 0, "ttl"); 198 goto bad; 198 /* don't let this mbuf to be freed */ 199 return; 199 200 } 200 201 -
trunk/src/VBox/Devices/Network/slirp/slirp.c
r30045 r30350 1444 1444 memcpy(rah->ar_tip, ah->ar_sip, 4); 1445 1445 if_encap(pData, ETH_P_ARP, mr, ETH_ENCAP_URG); 1446 m_freem(pData, m);1447 1446 } 1448 1447 /* Gratuitous ARP */ … … 1456 1455 if (slirp_arp_cache_update(pData, *(uint32_t *)ah->ar_tip, &eh->h_dest[0]) == 0) 1457 1456 { 1458 m_freem(pData, mr);1459 1457 m_freem(pData, m); 1460 1458 break; -
trunk/src/VBox/Devices/Network/slirp/tcp_input.c
r30045 r30350 798 798 } 799 799 tp = tcp_close(pData, tp); 800 m_freem(pData, m);801 800 } 802 801 else -
trunk/src/VBox/Devices/Network/slirp/udp.c
r30016 r30350 190 190 dst.sin_addr.s_addr = ip->ip_src.s_addr; 191 191 dst.sin_port = uh->uh_sport; 192 /* udp_output2 will do opposite operations on mbuf*/ 192 193 /* udp_output2 expects pointer on the body of UDP packet. */ 193 194 194 195 m->m_data += sizeof(struct udpiphdr); 195 196 m->m_len -= sizeof(struct udpiphdr); 196 197 udp_output2(pData, NULL, m, &src, &dst, IPTOS_LOWDELAY); 197 goto done; 198 /* we shouldn't free this mbuf*/ 199 return; 198 200 } 199 201 /*
Note:
See TracChangeset
for help on using the changeset viewer.

