Changeset 75737 in vbox for trunk/src/VBox/HostServices/GuestProperties
- Timestamp:
- Nov 26, 2018 3:44:41 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 126937
- Location:
- trunk/src/VBox/HostServices/GuestProperties
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/GuestProperties/service.cpp
r75500 r75737 528 528 */ 529 529 if ( cParms != 4 530 || RT_FAILURE( paParms[0].getPointer((void **)&papszNames, &cbDummy))531 || RT_FAILURE( paParms[1].getPointer((void **)&papszValues, &cbDummy))532 || RT_FAILURE( paParms[2].getPointer((void **)&pau64Timestamps, &cbDummy))533 || RT_FAILURE( paParms[3].getPointer((void **)&papszFlags, &cbDummy))530 || RT_FAILURE(HGCMSvcGetPv(&paParms[0], (void **)&papszNames, &cbDummy)) 531 || RT_FAILURE(HGCMSvcGetPv(&paParms[1], (void **)&papszValues, &cbDummy)) 532 || RT_FAILURE(HGCMSvcGetPv(&paParms[2], (void **)&pau64Timestamps, &cbDummy)) 533 || RT_FAILURE(HGCMSvcGetPv(&paParms[3], (void **)&papszFlags, &cbDummy)) 534 534 ) 535 535 rc = VERR_INVALID_PARAMETER; … … 624 624 LogFlowThisFunc(("\n")); 625 625 if ( cParms != 4 /* Hardcoded value as the next lines depend on it. */ 626 || RT_FAILURE( paParms[0].getString(&pcszName, &cbName)) /* name */627 || RT_FAILURE( paParms[1].getBuffer((void **)&pchBuf, &cbBuf)) /* buffer */626 || RT_FAILURE(HGCMSvcGetCStr(&paParms[0], &pcszName, &cbName)) /* name */ 627 || RT_FAILURE(HGCMSvcGetBuf(&paParms[1], (void **)&pchBuf, &cbBuf)) /* buffer */ 628 628 ) 629 629 rc = VERR_INVALID_PARAMETER; … … 652 652 size_t const cbValue = pProp->mValue.size() + 1; 653 653 size_t const cbNeeded = cbValue + cbFlags; 654 paParms[3].setUInt32((uint32_t)cbNeeded);654 HGCMSvcSetU32(&paParms[3], (uint32_t)cbNeeded); 655 655 if (cbBuf >= cbNeeded) 656 656 { … … 659 659 memcpy(pchBuf + cbValue, szFlags, cbFlags); 660 660 661 paParms[2].setUInt64(pProp->mTimestamp);661 HGCMSvcSetU64(&paParms[2], pProp->mTimestamp); 662 662 663 663 /* … … 708 708 if ( RT_SUCCESS(rc) 709 709 && ( (cParms < 2) || (cParms > 3) /* Hardcoded value as the next lines depend on it. */ 710 || RT_FAILURE( paParms[0].getString(&pcszName, &cchName)) /* name */711 || RT_FAILURE( paParms[1].getString(&pcszValue, &cchValue)) /* value */710 || RT_FAILURE(HGCMSvcGetCStr(&paParms[0], &pcszName, &cchName)) /* name */ 711 || RT_FAILURE(HGCMSvcGetCStr(&paParms[1], &pcszValue, &cchValue)) /* value */ 712 712 || ( (3 == cParms) 713 && RT_FAILURE( paParms[2].getString(&pcszFlags, &cchFlags)) /* flags */713 && RT_FAILURE(HGCMSvcGetCStr(&paParms[2], &pcszFlags, &cchFlags)) /* flags */ 714 714 ) 715 715 ) … … 825 825 */ 826 826 if ( (cParms == 1) /* Hardcoded value as the next lines depend on it. */ 827 && RT_SUCCESS( paParms[0].getString(&pcszName, &cbName)) /* name */827 && RT_SUCCESS(HGCMSvcGetCStr(&paParms[0], &pcszName, &cbName)) /* name */ 828 828 ) 829 829 rc = validateName(pcszName, cbName); … … 954 954 LogFlowThisFunc(("\n")); 955 955 if ( (cParms != 3) /* Hardcoded value as the next lines depend on it. */ 956 || RT_FAILURE( paParms[0].getString(&pchPatterns, &cbPatterns)) /* patterns */957 || RT_FAILURE( paParms[1].getBuffer((void **)&pchBuf, &cbBuf)) /* return buffer */956 || RT_FAILURE(HGCMSvcGetCStr(&paParms[0], &pchPatterns, &cbPatterns)) /* patterns */ 957 || RT_FAILURE(HGCMSvcGetBuf(&paParms[1], (void **)&pchBuf, &cbBuf)) /* return buffer */ 958 958 ) 959 959 rc = VERR_INVALID_PARAMETER; … … 989 989 if (RT_SUCCESS(rc)) 990 990 { 991 paParms[2].setUInt32((uint32_t)(EnumData.cbNeeded + 4));991 HGCMSvcSetU32(&paParms[2], (uint32_t)(EnumData.cbNeeded + 4)); 992 992 if (EnumData.cbLeft >= 4) 993 993 { … … 1048 1048 uint32_t cbBuf; 1049 1049 1050 int rc = paParms[2].getBuffer((void **)&pchBuf, &cbBuf);1050 int rc = HGCMSvcGetBuf(&paParms[2], (void **)&pchBuf, &cbBuf); 1051 1051 if (RT_SUCCESS(rc)) 1052 1052 { … … 1066 1066 if (RT_SUCCESS(rc)) 1067 1067 { 1068 paParms[1].setUInt64(u64Timestamp);1069 paParms[3].setUInt32((uint32_t)buffer.size());1068 HGCMSvcSetU64(&paParms[1], u64Timestamp); 1069 HGCMSvcSetU32(&paParms[3], (uint32_t)buffer.size()); 1070 1070 if (buffer.size() <= cbBuf) 1071 1071 buffer.copy(pchBuf, cbBuf); … … 1105 1105 LogFlowThisFunc(("\n")); 1106 1106 if ( cParms != 4 /* Hardcoded value as the next lines depend on it. */ 1107 || RT_FAILURE( paParms[0].getString(&pszPatterns, &cchPatterns)) /* patterns */1108 || RT_FAILURE( paParms[1].getUInt64(&u64Timestamp)) /* timestamp */1109 || RT_FAILURE( paParms[2].getBuffer((void **)&pchBuf, &cbBuf)) /* return buffer */1107 || RT_FAILURE(HGCMSvcGetStr(&paParms[0], &pszPatterns, &cchPatterns)) /* patterns */ 1108 || RT_FAILURE(HGCMSvcGetU64(&paParms[1], &u64Timestamp)) /* timestamp */ 1109 || RT_FAILURE(HGCMSvcGetBuf(&paParms[2], (void **)&pchBuf, &cbBuf)) /* return buffer */ 1110 1110 ) 1111 1111 rc = VERR_INVALID_PARAMETER; … … 1135 1135 const char *pszPatternsExisting; 1136 1136 uint32_t cchPatternsExisting; 1137 int rc3 = it->mParms[0].getString(&pszPatternsExisting, &cchPatternsExisting);1137 int rc3 = HGCMSvcGetCStr(&it->mParms[0], &pszPatternsExisting, &cchPatternsExisting); 1138 1138 1139 1139 if ( RT_SUCCESS(rc3) … … 1213 1213 const char *pszPatterns; 1214 1214 uint32_t cchPatterns; 1215 it->mParms[0].getString(&pszPatterns, &cchPatterns);1215 HGCMSvcGetCStr(&it->mParms[0], &pszPatterns, &cchPatterns); 1216 1216 if (prop.Matches(pszPatterns)) 1217 1217 { … … 1529 1529 { 1530 1530 uint32_t fFlags; 1531 rc = paParms[0].getUInt32(&fFlags);1531 rc = HGCMSvcGetU32(&paParms[0], &fFlags); 1532 1532 if (RT_SUCCESS(rc)) 1533 1533 mfGlobalFlags = fFlags; -
trunk/src/VBox/HostServices/GuestProperties/testcase/tstGuestPropSvc.cpp
r75500 r75737 225 225 226 226 VBOXHGCMSVCPARM aParms[4]; 227 aParms[0].setPointer((void *)g_apcszNameBlock, 0);228 aParms[1].setPointer((void *)g_apcszValueBlock, 0);229 aParms[2].setPointer((void *)g_au64TimestampBlock, 0);230 aParms[3].setPointer((void *)g_apcszFlagsBlock, 0);227 HGCMSvcSetPv(&aParms[0], (void *)g_apcszNameBlock, 0); 228 HGCMSvcSetPv(&aParms[1], (void *)g_apcszValueBlock, 0); 229 HGCMSvcSetPv(&aParms[2], (void *)g_au64TimestampBlock, 0); 230 HGCMSvcSetPv(&aParms[3], (void *)g_apcszFlagsBlock, 0); 231 231 RTTESTI_CHECK_RC(ptable->pfnHostCall(ptable->pvService, GUEST_PROP_FN_HOST_SET_PROPS, 4, &aParms[0]), VINF_SUCCESS); 232 232 } … … 337 337 338 338 /* Check that we get buffer overflow with a too small buffer. */ 339 aParms[0].setPointer((void *)g_aEnumStrings[i].pszPatterns, g_aEnumStrings[i].cchPatterns);340 aParms[1].setPointer((void *)abBuffer, g_aEnumStrings[i].cbBuffer - 1);339 HGCMSvcSetPv(&aParms[0], (void *)g_aEnumStrings[i].pszPatterns, g_aEnumStrings[i].cchPatterns); 340 HGCMSvcSetPv(&aParms[1], (void *)abBuffer, g_aEnumStrings[i].cbBuffer - 1); 341 341 memset(abBuffer, 0x55, sizeof(abBuffer)); 342 342 int rc2 = ptable->pfnHostCall(ptable->pvService, GUEST_PROP_FN_HOST_ENUM_PROPS, 3, aParms); … … 344 344 { 345 345 uint32_t cbNeeded; 346 RTTESTI_CHECK_RC(rc2 = aParms[2].getUInt32(&cbNeeded), VINF_SUCCESS);346 RTTESTI_CHECK_RC(rc2 = HGCMSvcGetU32(&aParms[2], &cbNeeded), VINF_SUCCESS); 347 347 if (RT_SUCCESS(rc2)) 348 348 RTTESTI_CHECK_MSG(cbNeeded == g_aEnumStrings[i].cbBuffer, … … 353 353 354 354 /* Make a successfull call. */ 355 aParms[0].setPointer((void *)g_aEnumStrings[i].pszPatterns, g_aEnumStrings[i].cchPatterns);356 aParms[1].setPointer((void *)abBuffer, g_aEnumStrings[i].cbBuffer);355 HGCMSvcSetPv(&aParms[0], (void *)g_aEnumStrings[i].pszPatterns, g_aEnumStrings[i].cchPatterns); 356 HGCMSvcSetPv(&aParms[1], (void *)abBuffer, g_aEnumStrings[i].cbBuffer); 357 357 memset(abBuffer, 0x55, sizeof(abBuffer)); 358 358 rc2 = ptable->pfnHostCall(ptable->pvService, GUEST_PROP_FN_HOST_ENUM_PROPS, 3, aParms); … … 416 416 RTStrPrintf(szValue, sizeof(szValue), "%s", pcszValue); 417 417 RTStrPrintf(szFlags, sizeof(szFlags), "%s", pcszFlags); 418 aParms[0].setString(szName);419 aParms[1].setString(szValue);420 aParms[2].setString(szFlags);418 HGCMSvcSetStr(&aParms[0], szName); 419 HGCMSvcSetStr(&aParms[1], szValue); 420 HGCMSvcSetStr(&aParms[2], szFlags); 421 421 if (isHost) 422 422 callHandle.rc = pTable->pfnHostCall(pTable->pvService, command, … … 505 505 command = GUEST_PROP_FN_HOST_DEL_PROP; 506 506 VBOXHGCMSVCPARM aParms[1]; 507 aParms[0].setString(pcszName);507 HGCMSvcSetStr(&aParms[0], pcszName); 508 508 if (isHost) 509 509 callHandle.rc = pTable->pfnHostCall(pTable->pvService, command, 1, aParms); … … 606 606 RTTESTI_CHECK_RETV(s_aGetProperties[i].cchValue < sizeof(szBuffer)); 607 607 608 aParms[0].setString(s_aGetProperties[i].pcszName);608 HGCMSvcSetStr(&aParms[0], s_aGetProperties[i].pcszName); 609 609 memset(szBuffer, 0x55, sizeof(szBuffer)); 610 aParms[1].setPointer(szBuffer, sizeof(szBuffer));610 HGCMSvcSetPv(&aParms[1], szBuffer, sizeof(szBuffer)); 611 611 int rc2 = pTable->pfnHostCall(pTable->pvService, GUEST_PROP_FN_HOST_GET_PROP, 4, aParms); 612 612 … … 630 630 631 631 uint32_t u32ValueLen = UINT32_MAX; 632 RTTESTI_CHECK_RC(rc2 = aParms[3].getUInt32(&u32ValueLen), VINF_SUCCESS);632 RTTESTI_CHECK_RC(rc2 = HGCMSvcGetU32(&aParms[3], &u32ValueLen), VINF_SUCCESS); 633 633 if (RT_SUCCESS(rc2)) 634 634 { … … 643 643 { 644 644 uint64_t u64Timestamp = UINT64_MAX; 645 RTTESTI_CHECK_RC(rc2 = aParms[2].getUInt64(&u64Timestamp), VINF_SUCCESS);645 RTTESTI_CHECK_RC(rc2 = HGCMSvcGetU64(&aParms[2], &u64Timestamp), VINF_SUCCESS); 646 646 if (u64Timestamp != s_aGetProperties[i].u64Timestamp) 647 647 RTTestIFailed("Bad timestamp %llu for property '%s', expected %llu.", … … 700 700 memset(pvBuf, 0x55, cbBuf); 701 701 702 aParms[0].setPointer((void *)s_szPattern, sizeof(s_szPattern));703 aParms[1].setUInt64(1);704 aParms[2].setPointer(pvBuf, cbBuf);702 HGCMSvcSetPv(&aParms[0], (void *)s_szPattern, sizeof(s_szPattern)); 703 HGCMSvcSetU64(&aParms[1], 1); 704 HGCMSvcSetPv(&aParms[2], pvBuf, cbBuf); 705 705 pTable->pfnCall(pTable->pvService, &callHandle, 0, NULL, GUEST_PROP_FN_GET_NOTIFICATION, 4, aParms, 0); 706 706 707 707 if ( callHandle.rc != VERR_BUFFER_OVERFLOW 708 || RT_FAILURE( aParms[3].getUInt32(&cbRetNeeded))708 || RT_FAILURE(HGCMSvcGetU32(&aParms[3], &cbRetNeeded)) 709 709 || cbRetNeeded != g_aGetNotifications[0].cbBuffer 710 710 ) … … 726 726 memset(pvBuf, 0x55, cbBuf); 727 727 728 aParms[0].setPointer((void *)s_szPattern, sizeof(s_szPattern));729 aParms[1].setUInt64(u64Timestamp);730 aParms[2].setPointer(pvBuf, cbBuf);728 HGCMSvcSetPv(&aParms[0], (void *)s_szPattern, sizeof(s_szPattern)); 729 HGCMSvcSetU64(&aParms[1], u64Timestamp); 730 HGCMSvcSetPv(&aParms[2], pvBuf, cbBuf); 731 731 pTable->pfnCall(pTable->pvService, &callHandle, 0, NULL, GUEST_PROP_FN_GET_NOTIFICATION, 4, aParms, 0); 732 732 if ( RT_FAILURE(callHandle.rc) 733 733 || (i == 0 && callHandle.rc != VWRN_NOT_FOUND) 734 || RT_FAILURE( aParms[1].getUInt64(&u64Timestamp))735 || RT_FAILURE( aParms[3].getUInt32(&cbRetNeeded))734 || RT_FAILURE(HGCMSvcGetU64(&aParms[1], &u64Timestamp)) 735 || RT_FAILURE(HGCMSvcGetU32(&aParms[3], &cbRetNeeded)) 736 736 || cbRetNeeded != g_aGetNotifications[i].cbBuffer 737 737 || memcmp(pvBuf, g_aGetNotifications[i].pchBuffer, cbRetNeeded) != 0 … … 764 764 static char s_szPattern[] = ""; 765 765 766 g_AsyncNotification.aParms[0].setPointer((void *)s_szPattern, sizeof(s_szPattern));767 g_AsyncNotification.aParms[1].setUInt64(0);768 g_AsyncNotification.aParms[2].setPointer((void *)g_AsyncNotification.abBuffer,766 HGCMSvcSetPv(&g_AsyncNotification.aParms[0], (void *)s_szPattern, sizeof(s_szPattern)); 767 HGCMSvcSetU64(&g_AsyncNotification.aParms[1], 0); 768 HGCMSvcSetPv(&g_AsyncNotification.aParms[2], (void *)g_AsyncNotification.abBuffer, 769 769 sizeof(g_AsyncNotification.abBuffer)); 770 770 g_AsyncNotification.callHandle.rc = VINF_HGCM_ASYNC_EXECUTE; … … 786 786 uint32_t u32Size; 787 787 if ( g_AsyncNotification.callHandle.rc != VINF_SUCCESS 788 || RT_FAILURE( g_AsyncNotification.aParms[1].getUInt64(&u64Timestamp))789 || RT_FAILURE( g_AsyncNotification.aParms[3].getUInt32(&u32Size))788 || RT_FAILURE(HGCMSvcGetU64(&g_AsyncNotification.aParms[1], &u64Timestamp)) 789 || RT_FAILURE(HGCMSvcGetU32(&g_AsyncNotification.aParms[3], &u32Size)) 790 790 || u32Size != g_aGetNotifications[0].cbBuffer 791 791 || memcmp(g_AsyncNotification.abBuffer, g_aGetNotifications[0].pchBuffer, u32Size) != 0 … … 834 834 { 835 835 VBOXHGCMSVCPARM paParm; 836 paParm.setUInt32(fFlags);836 HGCMSvcSetU32(&paParm, fFlags); 837 837 int rc = pTable->pfnHostCall(pTable->pvService, GUEST_PROP_FN_HOST_SET_GLOBAL_FLAGS, 1, &paParm); 838 838 if (RT_FAILURE(rc)) … … 1018 1018 1019 1019 VBOXHGCMSVCPARM aParms[4]; 1020 aParms[0].setString(s_szProp);1021 aParms[1].setPointer(pvBuf, cbBuf);1020 HGCMSvcSetStr(&aParms[0], s_szProp); 1021 HGCMSvcSetPv(&aParms[1], pvBuf, cbBuf); 1022 1022 svcTable.pfnHostCall(svcTable.pvService, GUEST_PROP_FN_HOST_GET_PROP, RT_ELEMENTS(aParms), aParms); 1023 1023 … … 1054 1054 1055 1055 VBOXHGCMSVCPARM aParms[3]; 1056 aParms[0].setString("*");1057 aParms[1].setPointer(pvBuf, cbBuf);1056 HGCMSvcSetStr(&aParms[0], "*"); 1057 HGCMSvcSetPv(&aParms[1], pvBuf, cbBuf); 1058 1058 svcTable.pfnHostCall(svcTable.pvService, GUEST_PROP_FN_HOST_ENUM_PROPS, RT_ELEMENTS(aParms), aParms); 1059 1059 … … 1123 1123 VBOXHGCMSVCPARM aParms[4]; 1124 1124 char szBuffer[256]; 1125 aParms[0].setPointer(szProp, (uint32_t)cchProp + 1);1126 aParms[1].setPointer(szBuffer, sizeof(szBuffer));1125 HGCMSvcSetPv(&aParms[0], szProp, (uint32_t)cchProp + 1); 1126 HGCMSvcSetPv(&aParms[1], szBuffer, sizeof(szBuffer)); 1127 1127 RTTESTI_CHECK_RC_BREAK(svcTable.pfnHostCall(svcTable.pvService, GUEST_PROP_FN_HOST_GET_PROP, 4, aParms), VINF_SUCCESS); 1128 1128 }
Note:
See TracChangeset
for help on using the changeset viewer.