VirtualBox

Ignore:
Timestamp:
Feb 12, 2019 12:04:57 PM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
128785
Message:

NetLwf: (bugref:8976) Odd-length packets are aligned properly, but no longer padded.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetLwf-win.cpp

    r76553 r77272  
    15151515    NET_BUFFER *pBuffer = NET_BUFFER_LIST_FIRST_NB(pBufList);
    15161516    NDIS_STATUS Status = NdisRetreatNetBufferDataStart(pBuffer, cbAlignedFrame, 0 /** @todo DataBackfill */, NULL);
     1517    if (cbAlignedFrame - pSG->cbTotal > 0)
     1518    {
     1519        /* Make sure padding zeros do not get to the wire. */
     1520        if (NET_BUFFER_DATA_LENGTH(pBuffer) != cbAlignedFrame)
     1521            vboxNetLwfLogErrorEvent(IO_ERR_INTERNAL_ERROR, STATUS_SUCCESS, 11);
     1522        else
     1523            NET_BUFFER_DATA_LENGTH(pBuffer) = pSG->cbTotal;
     1524    }
    15171525    if (Status == NDIS_STATUS_SUCCESS)
    15181526    {
     
    15241532                NdisMoveMemory(pDst, pSG->aSegs[i].pv, pSG->aSegs[i].cb);
    15251533                pDst += pSG->aSegs[i].cb;
    1526             }
    1527             if (cbAlignedFrame > pSG->cbTotal)
    1528             {
    1529                 Log4(("vboxNetLwfWinSGtoNB: padding %d-byte packet with %d zero bytes", pSG->cbTotal, cbAlignedFrame - pSG->cbTotal));
    1530                 NdisZeroMemory(pDst, cbAlignedFrame - pSG->cbTotal);
    15311534            }
    15321535            Log4(("vboxNetLwfWinSGtoNB: allocated NBL+NB 0x%p\n", pBufList));
Note: See TracChangeset for help on using the changeset viewer.

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