Changeset 43062 in vbox for trunk/src/VBox
- Timestamp:
- Aug 29, 2012 9:46:14 AM (13 years ago)
- svn:sync-xref-src-repo-rev:
- 80403
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/src-client/GuestProcessImpl.cpp
r43061 r43062 1083 1083 char *pszArgs = NULL; 1084 1084 size_t cArgs = mData.mProcess.mArguments.size(); 1085 if (cArgs) 1086 { 1087 char **papszArgv = (char**)RTMemAlloc(sizeof(char*) * (cArgs + 1)); 1085 if (cArgs >= UINT32_MAX) 1086 vrc = VERR_BUFFER_OVERFLOW; 1087 1088 if ( RT_SUCCESS(vrc) 1089 && cArgs) 1090 { 1091 char **papszArgv = (char**)RTMemAlloc((cArgs + 1) * sizeof(char*)); 1088 1092 AssertReturn(papszArgv, VERR_NO_MEMORY); 1089 for (size_t i = 0; RT_SUCCESS(vrc) && i < cArgs; i++) 1090 vrc = RTStrDupEx(&papszArgv[i], mData.mProcess.mArguments[i].c_str()); 1093 1094 for (size_t i = 0; i < cArgs && RT_SUCCESS(vrc); i++) 1095 { 1096 const char *pszCurArg = mData.mProcess.mArguments[i].c_str(); 1097 AssertPtr(pszCurArg); 1098 vrc = RTStrDupEx(&papszArgv[i], pszCurArg); 1099 } 1091 1100 papszArgv[cArgs] = NULL; 1092 1101 1093 1102 if (RT_SUCCESS(vrc)) 1094 1103 vrc = RTGetOptArgvToString(&pszArgs, papszArgv, RTGETOPTARGV_CNV_QUOTE_MS_CRT); 1095 } 1096 size_t cbArgs = pszArgs ? strlen(pszArgs) + 1 : 0; /* Include terminating zero. */ 1104 1105 if (papszArgv) 1106 { 1107 size_t i = 0; 1108 while (papszArgv[i]) 1109 RTStrFree(papszArgv[i++]); 1110 RTMemFree(papszArgv); 1111 } 1112 } 1113 1114 /* Calculate arguments size (in bytes). */ 1115 size_t cbArgs = 0; 1116 if (RT_SUCCESS(vrc)) 1117 cbArgs = pszArgs ? strlen(pszArgs) + 1 : 0; /* Include terminating zero. */ 1097 1118 1098 1119 /* Prepare environment. */ 1099 1120 void *pvEnv = NULL; 1100 1121 size_t cbEnv = 0; 1101 vrc = mData.mProcess.mEnvironment.BuildEnvironmentBlock(&pvEnv, &cbEnv, NULL /* cEnv */); 1122 if (RT_SUCCESS(vrc)) 1123 vrc = mData.mProcess.mEnvironment.BuildEnvironmentBlock(&pvEnv, &cbEnv, NULL /* cEnv */); 1102 1124 1103 1125 if (RT_SUCCESS(vrc))
Note:
See TracChangeset
for help on using the changeset viewer.