VirtualBox

Changeset 106272 in vbox


Ignore:
Timestamp:
Oct 10, 2024 8:01:24 AM (6 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
165067
Message:

DrvNATlibslirp: Initialize cChangedFDs since RTWinPoll only sets it when returning VINF_SUCCESS and the code doesn't check the return code before using the value and ending up with an uninitialized stack value instead. Don't release log VERR_TIMEOUT returns from RTWSAPoll so the release log doesn't get flooded. bugref:10268

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/DrvNATlibslirp.cpp

    r106250 r106272  
    781781
    782782#else /* RT_OS_WINDOWS */
    783         uint32_t uTimeout = DRVNAT_DEFAULT_TIMEOUT;
     783        uint32_t msTimeout = DRVNAT_DEFAULT_TIMEOUT;
    784784        pThis->pNATState->nsock = 0;
    785         slirp_pollfds_fill(pThis->pNATState->pSlirp, &uTimeout, drvNAT_AddPollCb /* SlirpAddPollCb */, pThis /* opaque */);
    786         drvNAT_UpdateTimeout(&uTimeout, pThis);
    787 
    788         int cChangedFDs;
    789         int error = RTWinPoll(pThis->pNATState->polls, pThis->pNATState->nsock, uTimeout /* timeout */, &cChangedFDs, pThis->hWakeupEvent);
    790 
    791         if (error != 0)
    792         {
    793             LogRel(("NAT: WSAPoll returned %d (error %d)\n", cChangedFDs, error));
     785        slirp_pollfds_fill(pThis->pNATState->pSlirp, &msTimeout, drvNAT_AddPollCb /* SlirpAddPollCb */, pThis /* opaque */);
     786        drvNAT_UpdateTimeout(&msTimeout, pThis);
     787
     788        int cChangedFDs = 0;
     789        int vrc = RTWinPoll(pThis->pNATState->polls, pThis->pNATState->nsock, msTimeout, &cChangedFDs, pThis->hWakeupEvent);
     790        if (vrc != VINF_SUCCESS)
     791        {
     792            if (vrc != VERR_TIMEOUT)
     793                LogRel(("NAT: WSAPoll returned vrc=%Rrc (cChangedFDs=%d)\n", vrc, cChangedFDs));
    794794            Log4(("NAT: NSOCK = %d\n", pThis->pNATState->nsock));
    795795        }
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