Changeset 36743 in vbox
- Timestamp:
- Apr 20, 2011 9:56:27 AM (14 years ago)
- svn:sync-xref-src-repo-rev:
- 71274
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/GuestControl/service.cpp
r36529 r36743 360 360 pBuf->pParms[i].u.pointer.size); 361 361 } 362 else 363 { 364 /* Size is 0 -- make sure we don't have any pointer. */ 365 pBuf->pParms[i].u.pointer.addr = NULL; 366 } 362 367 break; 363 368 … … 413 418 if (cParms != pBuf->uParmCount) 414 419 { 415 LogFlowFunc(("Parameter count does not match (%u (buffer), %u (guest))\n",420 LogFlowFunc(("Parameter count does not match: %u (host) vs. %u (guest)\n", 416 421 pBuf->uParmCount, cParms)); 417 422 rc = VERR_INVALID_PARAMETER; … … 436 441 if (paParms[i].u.pointer.size >= pBuf->pParms[i].u.pointer.size) 437 442 { 438 memcpy(paParms[i].u.pointer.addr, 439 pBuf->pParms[i].u.pointer.addr, 440 pBuf->pParms[i].u.pointer.size); 443 /* Only copy buffer if there actually is something to copy. */ 444 if (pBuf->pParms[i].u.pointer.size) 445 { 446 AssertPtr(pBuf->pParms[i].u.pointer.addr); 447 memcpy(paParms[i].u.pointer.addr, 448 pBuf->pParms[i].u.pointer.addr, 449 pBuf->pParms[i].u.pointer.size); 450 } 441 451 } 442 452 else … … 644 654 } 645 655 } 656 else 657 { 658 /* Client did not understand the message or something else weird happened. Try again one 659 * more time and drop it if it didn't get handled then. */ 660 if (++curCmd.mTries > 1) 661 { 662 paramBufferFree(&curCmd.mParmBuf); 663 mHostCmds.pop_front(); 664 } 665 } 646 666 } 647 667 return rc;
Note:
See TracChangeset
for help on using the changeset viewer.