Changeset 59796 in vbox for trunk/src/VBox/Devices/USB
- Timestamp:
- Feb 24, 2016 10:59:59 AM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 105676
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/USB/VUSBUrb.cpp
r59775 r59796 631 631 //pExtra->Urb.pVUsb->pNext = NULL; 632 632 //pExtra->Urb.pVUsb->ppPrev = NULL; 633 pExtra->Urb.pVUsb->pUrb = &pExtra->Urb; 633 634 pExtra->Urb.pVUsb->pDev = pUrb->pVUsb->pDev; 634 635 pExtra->Urb.pVUsb->pfnFree = vusbMsgFreeUrb; … … 688 689 LogFlow(("vusbMsgSetup: Replacing canceled pExtra=%p with %p.\n", pExtra, pvNew)); 689 690 pPipe->pCtrl = pExtra = (PVUSBCTRLEXTRA)pvNew; 691 pExtra->Urb.pVUsb = (PVUSBURBVUSB)&pExtra->Urb.abData[sizeof(pExtra->Urb.abData) + sizeof(VUSBSETUP)]; 692 pExtra->Urb.pVUsb->pUrb = &pExtra->Urb; 690 693 pExtra->pMsg = (PVUSBSETUP)pExtra->Urb.abData; 691 694 pExtra->Urb.enmState = VUSBURBSTATE_ALLOCATED; … … 696 699 * Check that we've got sufficient space in the message URB. 697 700 */ 698 if (pExtra->cbMax < cbBuf + pSetupIn->wLength )699 { 700 uint32_t cbReq = RT_ALIGN_32(cbBuf + pSetupIn->wLength , 1024);701 if (pExtra->cbMax < cbBuf + pSetupIn->wLength + sizeof(VUSBURBVUSBINT)) 702 { 703 uint32_t cbReq = RT_ALIGN_32(cbBuf + pSetupIn->wLength + sizeof(VUSBURBVUSBINT), 1024); 701 704 PVUSBCTRLEXTRA pNew = (PVUSBCTRLEXTRA)RTMemRealloc(pExtra, RT_OFFSETOF(VUSBCTRLEXTRA, Urb.abData[cbReq])); 702 705 if (!pNew) … … 711 714 pExtra = pNew; 712 715 } 716 pExtra->Urb.pVUsb = (PVUSBURBVUSB)&pExtra->Urb.abData[cbBuf + pSetupIn->wLength]; 717 pExtra->Urb.pVUsb->pUrb = &pExtra->Urb; 713 718 pExtra->cbMax = cbReq; 714 719 }
Note:
See TracChangeset
for help on using the changeset viewer.