VirtualBox

Ignore:
Timestamp:
Nov 12, 2014 3:00:16 AM (10 years ago)
Author:
vboxsync
Message:

NAT: m_adj() - when truncating by exactly the length of the last mbuf
in a chain, don't leave that last mbuf around with m_len set to 0.
Fragmentation code in ip_output0() sending a chain of two mbufs
triggers this for the first fragment and if_encap() drops it thinking
it was passed a chain (or triggers an assertion in a debug build).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/slirp/bsd/kern/uipc_mbuf.c

    r41783 r53308  
    11011101                        m = m->m_next;
    11021102                }
    1103                 if (m->m_len >= len) {
     1103                if (m->m_len > len || (m->m_len == len && m == mp)) {
    11041104                        m->m_len -= len;
    11051105                        if (mp->m_flags & M_PKTHDR)
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette