Changeset 84150 in vbox for trunk/src/VBox/Additions
- Timestamp:
- May 5, 2020 5:48:08 PM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 137750
- Location:
- trunk/src/VBox/Additions/common/VBoxService
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControl.h
r84149 r84150 337 337 * @{ */ 338 338 extern int VgsvcGstCtrlSessionStartupInfoInit(PVBOXSERVICECTRLSESSIONSTARTUPINFO pStartupInfo); 339 extern int VgsvcGstCtrlSessionStartupInfoInitEx(PVBOXSERVICECTRLSESSIONSTARTUPINFO pStartupInfo, size_t cbUser, size_t cbPassword, size_t cbDomain); 339 340 extern void VgsvcGstCtrlSessionStartupInfoDestroy(PVBOXSERVICECTRLSESSIONSTARTUPINFO pStartupInfo); 340 341 … … 352 353 * @{ */ 353 354 extern int VgsvcGstCtrlProcessStartupInfoInit(PVBOXSERVICECTRLPROCSTARTUPINFO pStartupInfo); 354 extern int VgsvcGstCtrlProcessStartupInfoInitEx(PVBOXSERVICECTRLPROCSTARTUPINFO pStartupInfo, size_t cb Env, size_t cbArgs);355 extern int VgsvcGstCtrlProcessStartupInfoInitEx(PVBOXSERVICECTRLPROCSTARTUPINFO pStartupInfo, size_t cbCmd, size_t cbUser, size_t cbPassword, size_t cbDomain, size_t cbArgs, size_t cbEnv); 355 356 extern void VgsvcGstCtrlProcessStartupInfoDestroy(PVBOXSERVICECTRLPROCSTARTUPINFO pStartupInfo); 356 357 extern void VgsvcGstCtrlProcessStartupInfoFree(PVBOXSERVICECTRLPROCSTARTUPINFO pStartupInfo); -
trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControlProcess.cpp
r84147 r84150 66 66 * @returns VBox status code. 67 67 * @param pStartupInfo Process startup info to initializes. 68 * @param cbCmd Size (in bytes) to use for the command buffer. 69 * @param cbUser Size (in bytes) to use for the user name buffer. 70 * @param cbPassword Size (in bytes) to use for the password buffer. 71 * @param cbDomain Size (in bytes) to use for the domain buffer. 68 72 * @param cbArgs Size (in bytes) to use for the arguments buffer. 69 73 * @param cbEnv Size (in bytes) to use for the environment buffer. 70 74 */ 71 75 int VgsvcGstCtrlProcessStartupInfoInitEx(PVBOXSERVICECTRLPROCSTARTUPINFO pStartupInfo, 76 size_t cbCmd, 77 size_t cbUser, size_t cbPassword, size_t cbDomain, 72 78 size_t cbArgs, size_t cbEnv) 73 79 { 74 80 AssertPtrReturn(pStartupInfo, VERR_INVALID_POINTER); 81 AssertReturn(cbCmd, VERR_INVALID_PARAMETER); 82 AssertReturn(cbUser, VERR_INVALID_PARAMETER); 83 AssertReturn(cbPassword, VERR_INVALID_PARAMETER); 84 AssertReturn(cbDomain, VERR_INVALID_PARAMETER); 75 85 AssertReturn(cbArgs, VERR_INVALID_PARAMETER); 76 86 AssertReturn(cbEnv, VERR_INVALID_PARAMETER); … … 88 98 do 89 99 { 90 ALLOC_STR(Cmd, sizeof(char) * GUESTPROCESS_MAX_CMD_LEN);100 ALLOC_STR(Cmd, cbCmd); 91 101 ALLOC_STR(Args, cbArgs); 92 102 ALLOC_STR(Env, cbEnv); 93 ALLOC_STR(User, sizeof(char) * GUESTPROCESS_MAX_USER_LEN);94 ALLOC_STR(Password, sizeof(char) * GUESTPROCESS_MAX_PASSWORD_LEN);95 ALLOC_STR(Domain, sizeof(char) * GUESTPROCESS_MAX_DOMAIN_LEN);103 ALLOC_STR(User, cbUser); 104 ALLOC_STR(Password, cbPassword); 105 ALLOC_STR(Domain, cbDomain); 96 106 97 107 return VINF_SUCCESS; … … 113 123 { 114 124 return VgsvcGstCtrlProcessStartupInfoInitEx(pStartupInfo, 125 GUESTPROCESS_MAX_CMD_LEN, 126 GUESTPROCESS_MAX_USER_LEN, GUESTPROCESS_MAX_PASSWORD_LEN, 127 GUESTPROCESS_MAX_DOMAIN_LEN, 115 128 GUESTPROCESS_MAX_ARGS_LEN, GUESTPROCESS_MAX_ENV_LEN); 116 129 } … … 179 192 if (pStartupInfo->cb##a_Str) \ 180 193 { \ 194 pStartupInfoDup->psz##a_Str = (char *)RTStrDup(pStartupInfo->psz##a_Str); \ 195 AssertPtrBreak(pStartupInfoDup->psz##a_Str); \ 196 pStartupInfoDup->cb##a_Str = strlen(pStartupInfoDup->psz##a_Str) + 1 /* Include terminator */; \ 197 } 198 199 #define DUP_MEM(a_Str) \ 200 if (pStartupInfo->cb##a_Str) \ 201 { \ 181 202 pStartupInfoDup->psz##a_Str = (char *)RTMemDup(pStartupInfo->psz##a_Str, pStartupInfo->cb##a_Str); \ 182 203 AssertPtrBreak(pStartupInfoDup->psz##a_Str); \ … … 185 206 186 207 DUP_STR(Cmd); 187 DUP_ STR(Args);188 DUP_ STR(Env);208 DUP_MEM(Args); 209 DUP_MEM(Env); 189 210 DUP_STR(User); 190 211 DUP_STR(Password); … … 192 213 193 214 #undef DUP_STR 215 #undef DUP_MEM 194 216 195 217 return pStartupInfoDup; -
trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControlSession.cpp
r84148 r84150 1035 1035 1036 1036 /** 1037 * Initializes a session startup info .1037 * Initializes a session startup info, extended version. 1038 1038 * 1039 1039 * @returns VBox status code. 1040 1040 * @param pStartupInfo Session startup info to initializes. 1041 */ 1042 int VgsvcGstCtrlSessionStartupInfoInit(PVBOXSERVICECTRLSESSIONSTARTUPINFO pStartupInfo) 1041 * @param cbUser Size (in bytes) to use for the user name buffer. 1042 * @param cbPassword Size (in bytes) to use for the password buffer. 1043 * @param cbDomain Size (in bytes) to use for the domain name buffer. 1044 */ 1045 int VgsvcGstCtrlSessionStartupInfoInitEx(PVBOXSERVICECTRLSESSIONSTARTUPINFO pStartupInfo, 1046 size_t cbUser, size_t cbPassword, size_t cbDomain) 1043 1047 { 1044 1048 AssertPtrReturn(pStartupInfo, VERR_INVALID_POINTER); … … 1056 1060 do 1057 1061 { 1058 ALLOC_STR(User, sizeof(char) * GUESTPROCESS_MAX_USER_LEN);1059 ALLOC_STR(Password, sizeof(char) * GUESTPROCESS_MAX_PASSWORD_LEN);1060 ALLOC_STR(Domain, sizeof(char) * GUESTPROCESS_MAX_DOMAIN_LEN);1062 ALLOC_STR(User, cbUser); 1063 ALLOC_STR(Password, cbPassword); 1064 ALLOC_STR(Domain, cbDomain); 1061 1065 1062 1066 return VINF_SUCCESS; … … 1068 1072 VgsvcGstCtrlSessionStartupInfoDestroy(pStartupInfo); 1069 1073 return VERR_NO_MEMORY; 1074 } 1075 1076 /** 1077 * Initializes a session startup info. 1078 * 1079 * @returns VBox status code. 1080 * @param pStartupInfo Session startup info to initializes. 1081 */ 1082 int VgsvcGstCtrlSessionStartupInfoInit(PVBOXSERVICECTRLSESSIONSTARTUPINFO pStartupInfo) 1083 { 1084 return VgsvcGstCtrlSessionStartupInfoInitEx(pStartupInfo, 1085 GUESTPROCESS_MAX_USER_LEN, GUESTPROCESS_MAX_PASSWORD_LEN, 1086 GUESTPROCESS_MAX_DOMAIN_LEN); 1070 1087 } 1071 1088 … … 1127 1144 if (pStartupInfo->cb##a_Str) \ 1128 1145 { \ 1129 pStartupInfoDup->psz##a_Str = (char *)RT MemDup(pStartupInfo->psz##a_Str, pStartupInfo->cb##a_Str); \1146 pStartupInfoDup->psz##a_Str = (char *)RTStrDup(pStartupInfo->psz##a_Str); \ 1130 1147 AssertPtrBreak(pStartupInfoDup->psz##a_Str); \ 1131 pStartupInfoDup->cb##a_Str = pStartupInfo->cb##a_Str; \1148 pStartupInfoDup->cb##a_Str = strlen(pStartupInfoDup->psz##a_Str) + 1 /* Include terminator */; \ 1132 1149 } 1133 1150 DUP_STR(User);
Note:
See TracChangeset
for help on using the changeset viewer.