aboutsummaryrefslogtreecommitdiff
path: root/src/engine/elevation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/elevation.cpp')
-rw-r--r--src/engine/elevation.cpp90
1 files changed, 47 insertions, 43 deletions
diff --git a/src/engine/elevation.cpp b/src/engine/elevation.cpp
index 3a448923..9d1b8fc7 100644
--- a/src/engine/elevation.cpp
+++ b/src/engine/elevation.cpp
@@ -157,7 +157,7 @@ static HRESULT OnApplyInitialize(
157 __in HANDLE* phLock, 157 __in HANDLE* phLock,
158 __in BOOL* pfDisabledWindowsUpdate, 158 __in BOOL* pfDisabledWindowsUpdate,
159 __in BYTE* pbData, 159 __in BYTE* pbData,
160 __in DWORD cbData 160 __in SIZE_T cbData
161 ); 161 );
162static HRESULT OnApplyUninitialize( 162static HRESULT OnApplyUninitialize(
163 __in HANDLE* phLock 163 __in HANDLE* phLock
@@ -166,39 +166,39 @@ static HRESULT OnSessionBegin(
166 __in BURN_REGISTRATION* pRegistration, 166 __in BURN_REGISTRATION* pRegistration,
167 __in BURN_VARIABLES* pVariables, 167 __in BURN_VARIABLES* pVariables,
168 __in BYTE* pbData, 168 __in BYTE* pbData,
169 __in DWORD cbData 169 __in SIZE_T cbData
170 ); 170 );
171static HRESULT OnSessionResume( 171static HRESULT OnSessionResume(
172 __in BURN_REGISTRATION* pRegistration, 172 __in BURN_REGISTRATION* pRegistration,
173 __in BURN_VARIABLES* pVariables, 173 __in BURN_VARIABLES* pVariables,
174 __in BYTE* pbData, 174 __in BYTE* pbData,
175 __in DWORD cbData 175 __in SIZE_T cbData
176 ); 176 );
177static HRESULT OnSessionEnd( 177static HRESULT OnSessionEnd(
178 __in BURN_PACKAGES* pPackages, 178 __in BURN_PACKAGES* pPackages,
179 __in BURN_REGISTRATION* pRegistration, 179 __in BURN_REGISTRATION* pRegistration,
180 __in BURN_VARIABLES* pVariables, 180 __in BURN_VARIABLES* pVariables,
181 __in BYTE* pbData, 181 __in BYTE* pbData,
182 __in DWORD cbData 182 __in SIZE_T cbData
183 ); 183 );
184static HRESULT OnSaveState( 184static HRESULT OnSaveState(
185 __in BURN_REGISTRATION* pRegistration, 185 __in BURN_REGISTRATION* pRegistration,
186 __in BYTE* pbData, 186 __in BYTE* pbData,
187 __in DWORD cbData 187 __in SIZE_T cbData
188 ); 188 );
189static HRESULT OnCacheCompletePayload( 189static HRESULT OnCacheCompletePayload(
190 __in HANDLE hPipe, 190 __in HANDLE hPipe,
191 __in BURN_PACKAGES* pPackages, 191 __in BURN_PACKAGES* pPackages,
192 __in BURN_PAYLOADS* pPayloads, 192 __in BURN_PAYLOADS* pPayloads,
193 __in BYTE* pbData, 193 __in BYTE* pbData,
194 __in DWORD cbData 194 __in SIZE_T cbData
195 ); 195 );
196static HRESULT OnCacheVerifyPayload( 196static HRESULT OnCacheVerifyPayload(
197 __in HANDLE hPipe, 197 __in HANDLE hPipe,
198 __in BURN_PACKAGES* pPackages, 198 __in BURN_PACKAGES* pPackages,
199 __in BURN_PAYLOADS* pPayloads, 199 __in BURN_PAYLOADS* pPayloads,
200 __in BYTE* pbData, 200 __in BYTE* pbData,
201 __in DWORD cbData 201 __in SIZE_T cbData
202 ); 202 );
203static void OnCacheCleanup( 203static void OnCacheCleanup(
204 __in_z LPCWSTR wzBundleId 204 __in_z LPCWSTR wzBundleId
@@ -206,7 +206,7 @@ static void OnCacheCleanup(
206static HRESULT OnProcessDependentRegistration( 206static HRESULT OnProcessDependentRegistration(
207 __in const BURN_REGISTRATION* pRegistration, 207 __in const BURN_REGISTRATION* pRegistration,
208 __in BYTE* pbData, 208 __in BYTE* pbData,
209 __in DWORD cbData 209 __in SIZE_T cbData
210 ); 210 );
211static HRESULT OnExecuteExePackage( 211static HRESULT OnExecuteExePackage(
212 __in HANDLE hPipe, 212 __in HANDLE hPipe,
@@ -214,40 +214,40 @@ static HRESULT OnExecuteExePackage(
214 __in BURN_RELATED_BUNDLES* pRelatedBundles, 214 __in BURN_RELATED_BUNDLES* pRelatedBundles,
215 __in BURN_VARIABLES* pVariables, 215 __in BURN_VARIABLES* pVariables,
216 __in BYTE* pbData, 216 __in BYTE* pbData,
217 __in DWORD cbData 217 __in SIZE_T cbData
218 ); 218 );
219static HRESULT OnExecuteMsiPackage( 219static HRESULT OnExecuteMsiPackage(
220 __in HANDLE hPipe, 220 __in HANDLE hPipe,
221 __in BURN_PACKAGES* pPackages, 221 __in BURN_PACKAGES* pPackages,
222 __in BURN_VARIABLES* pVariables, 222 __in BURN_VARIABLES* pVariables,
223 __in BYTE* pbData, 223 __in BYTE* pbData,
224 __in DWORD cbData 224 __in SIZE_T cbData
225 ); 225 );
226static HRESULT OnExecuteMspPackage( 226static HRESULT OnExecuteMspPackage(
227 __in HANDLE hPipe, 227 __in HANDLE hPipe,
228 __in BURN_PACKAGES* pPackages, 228 __in BURN_PACKAGES* pPackages,
229 __in BURN_VARIABLES* pVariables, 229 __in BURN_VARIABLES* pVariables,
230 __in BYTE* pbData, 230 __in BYTE* pbData,
231 __in DWORD cbData 231 __in SIZE_T cbData
232 ); 232 );
233static HRESULT OnExecuteMsuPackage( 233static HRESULT OnExecuteMsuPackage(
234 __in HANDLE hPipe, 234 __in HANDLE hPipe,
235 __in BURN_PACKAGES* pPackages, 235 __in BURN_PACKAGES* pPackages,
236 __in BURN_VARIABLES* pVariables, 236 __in BURN_VARIABLES* pVariables,
237 __in BYTE* pbData, 237 __in BYTE* pbData,
238 __in DWORD cbData 238 __in SIZE_T cbData
239 ); 239 );
240static HRESULT OnExecutePackageProviderAction( 240static HRESULT OnExecutePackageProviderAction(
241 __in BURN_PACKAGES* pPackages, 241 __in BURN_PACKAGES* pPackages,
242 __in BURN_RELATED_BUNDLES* pRelatedBundles, 242 __in BURN_RELATED_BUNDLES* pRelatedBundles,
243 __in BYTE* pbData, 243 __in BYTE* pbData,
244 __in DWORD cbData 244 __in SIZE_T cbData
245 ); 245 );
246static HRESULT OnExecutePackageDependencyAction( 246static HRESULT OnExecutePackageDependencyAction(
247 __in BURN_PACKAGES* pPackages, 247 __in BURN_PACKAGES* pPackages,
248 __in BURN_RELATED_BUNDLES* pRelatedBundles, 248 __in BURN_RELATED_BUNDLES* pRelatedBundles,
249 __in BYTE* pbData, 249 __in BYTE* pbData,
250 __in DWORD cbData 250 __in SIZE_T cbData
251 ); 251 );
252static HRESULT CALLBACK BurnCacheMessageHandler( 252static HRESULT CALLBACK BurnCacheMessageHandler(
253 __in BURN_CACHE_MESSAGE* pMessage, 253 __in BURN_CACHE_MESSAGE* pMessage,
@@ -275,29 +275,29 @@ static int MsiExecuteMessageHandler(
275static HRESULT OnCleanPackage( 275static HRESULT OnCleanPackage(
276 __in BURN_PACKAGES* pPackages, 276 __in BURN_PACKAGES* pPackages,
277 __in BYTE* pbData, 277 __in BYTE* pbData,
278 __in DWORD cbData 278 __in SIZE_T cbData
279 ); 279 );
280static HRESULT OnLaunchApprovedExe( 280static HRESULT OnLaunchApprovedExe(
281 __in HANDLE hPipe, 281 __in HANDLE hPipe,
282 __in BURN_APPROVED_EXES* pApprovedExes, 282 __in BURN_APPROVED_EXES* pApprovedExes,
283 __in BURN_VARIABLES* pVariables, 283 __in BURN_VARIABLES* pVariables,
284 __in BYTE* pbData, 284 __in BYTE* pbData,
285 __in DWORD cbData 285 __in SIZE_T cbData
286 ); 286 );
287static HRESULT OnMsiBeginTransaction( 287static HRESULT OnMsiBeginTransaction(
288 __in BURN_PACKAGES* pPackages, 288 __in BURN_PACKAGES* pPackages,
289 __in BYTE* pbData, 289 __in BYTE* pbData,
290 __in DWORD cbData 290 __in SIZE_T cbData
291 ); 291 );
292static HRESULT OnMsiCommitTransaction( 292static HRESULT OnMsiCommitTransaction(
293 __in BURN_PACKAGES* pPackages, 293 __in BURN_PACKAGES* pPackages,
294 __in BYTE* pbData, 294 __in BYTE* pbData,
295 __in DWORD cbData 295 __in SIZE_T cbData
296 ); 296 );
297static HRESULT OnMsiRollbackTransaction( 297static HRESULT OnMsiRollbackTransaction(
298 __in BURN_PACKAGES* pPackages, 298 __in BURN_PACKAGES* pPackages,
299 __in BYTE* pbData, 299 __in BYTE* pbData,
300 __in DWORD cbData 300 __in SIZE_T cbData
301 ); 301 );
302static HRESULT ElevatedOnPauseAUBegin( 302static HRESULT ElevatedOnPauseAUBegin(
303 __in HANDLE hPipe 303 __in HANDLE hPipe
@@ -603,7 +603,7 @@ HRESULT ElevationSaveState(
603 DWORD dwResult = 0; 603 DWORD dwResult = 0;
604 604
605 // send message 605 // send message
606 hr = PipeSendMessage(hPipe, BURN_ELEVATION_MESSAGE_TYPE_SAVE_STATE, pbBuffer, (DWORD)cbBuffer, NULL, NULL, &dwResult); 606 hr = PipeSendMessage(hPipe, BURN_ELEVATION_MESSAGE_TYPE_SAVE_STATE, pbBuffer, cbBuffer, NULL, NULL, &dwResult);
607 ExitOnFailure(hr, "Failed to send message to per-machine process."); 607 ExitOnFailure(hr, "Failed to send message to per-machine process.");
608 608
609 hr = (HRESULT)dwResult; 609 hr = (HRESULT)dwResult;
@@ -858,6 +858,8 @@ extern "C" HRESULT ElevationMsiCommitTransaction(
858 hr = static_cast<HRESULT>(dwResult); 858 hr = static_cast<HRESULT>(dwResult);
859 859
860LExit: 860LExit:
861 ReleaseBuffer(pbData);
862
861 return hr; 863 return hr;
862} 864}
863 865
@@ -884,6 +886,8 @@ extern "C" HRESULT ElevationMsiRollbackTransaction(
884 hr = static_cast<HRESULT>(dwResult); 886 hr = static_cast<HRESULT>(dwResult);
885 887
886LExit: 888LExit:
889 ReleaseBuffer(pbData);
890
887 return hr; 891 return hr;
888} 892}
889 893
@@ -1612,7 +1616,7 @@ static HRESULT ProcessMsiPackageMessages(
1612 message.rgwzData = (LPCWSTR*)rgwzMsiData; 1616 message.rgwzData = (LPCWSTR*)rgwzMsiData;
1613 } 1617 }
1614 1618
1615 hr = BuffReadNumber((BYTE*)pMsg->pvData, pMsg->cbData, &iData, (DWORD*)&message.dwAllowedResults); 1619 hr = BuffReadNumber((BYTE*)pMsg->pvData, pMsg->cbData, &iData, &message.dwAllowedResults);
1616 ExitOnFailure(hr, "Failed to read UI flags."); 1620 ExitOnFailure(hr, "Failed to read UI flags.");
1617 1621
1618 // Process the rest of the message. 1622 // Process the rest of the message.
@@ -1907,7 +1911,7 @@ static HRESULT OnApplyInitialize(
1907 __in HANDLE* phLock, 1911 __in HANDLE* phLock,
1908 __in BOOL* pfDisabledWindowsUpdate, 1912 __in BOOL* pfDisabledWindowsUpdate,
1909 __in BYTE* pbData, 1913 __in BYTE* pbData,
1910 __in DWORD cbData 1914 __in SIZE_T cbData
1911 ) 1915 )
1912{ 1916{
1913 HRESULT hr = S_OK; 1917 HRESULT hr = S_OK;
@@ -2031,7 +2035,7 @@ static HRESULT OnSessionBegin(
2031 __in BURN_REGISTRATION* pRegistration, 2035 __in BURN_REGISTRATION* pRegistration,
2032 __in BURN_VARIABLES* pVariables, 2036 __in BURN_VARIABLES* pVariables,
2033 __in BYTE* pbData, 2037 __in BYTE* pbData,
2034 __in DWORD cbData 2038 __in SIZE_T cbData
2035 ) 2039 )
2036{ 2040{
2037 HRESULT hr = S_OK; 2041 HRESULT hr = S_OK;
@@ -2077,7 +2081,7 @@ static HRESULT OnSessionResume(
2077 __in BURN_REGISTRATION* pRegistration, 2081 __in BURN_REGISTRATION* pRegistration,
2078 __in BURN_VARIABLES* pVariables, 2082 __in BURN_VARIABLES* pVariables,
2079 __in BYTE* pbData, 2083 __in BYTE* pbData,
2080 __in DWORD cbData 2084 __in SIZE_T cbData
2081 ) 2085 )
2082{ 2086{
2083 HRESULT hr = S_OK; 2087 HRESULT hr = S_OK;
@@ -2106,7 +2110,7 @@ static HRESULT OnSessionEnd(
2106 __in BURN_REGISTRATION* pRegistration, 2110 __in BURN_REGISTRATION* pRegistration,
2107 __in BURN_VARIABLES* pVariables, 2111 __in BURN_VARIABLES* pVariables,
2108 __in BYTE* pbData, 2112 __in BYTE* pbData,
2109 __in DWORD cbData 2113 __in SIZE_T cbData
2110 ) 2114 )
2111{ 2115{
2112 HRESULT hr = S_OK; 2116 HRESULT hr = S_OK;
@@ -2136,7 +2140,7 @@ LExit:
2136static HRESULT OnSaveState( 2140static HRESULT OnSaveState(
2137 __in BURN_REGISTRATION* pRegistration, 2141 __in BURN_REGISTRATION* pRegistration,
2138 __in BYTE* pbData, 2142 __in BYTE* pbData,
2139 __in DWORD cbData 2143 __in SIZE_T cbData
2140 ) 2144 )
2141{ 2145{
2142 HRESULT hr = S_OK; 2146 HRESULT hr = S_OK;
@@ -2154,7 +2158,7 @@ static HRESULT OnCacheCompletePayload(
2154 __in BURN_PACKAGES* pPackages, 2158 __in BURN_PACKAGES* pPackages,
2155 __in BURN_PAYLOADS* pPayloads, 2159 __in BURN_PAYLOADS* pPayloads,
2156 __in BYTE* pbData, 2160 __in BYTE* pbData,
2157 __in DWORD cbData 2161 __in SIZE_T cbData
2158 ) 2162 )
2159{ 2163{
2160 HRESULT hr = S_OK; 2164 HRESULT hr = S_OK;
@@ -2213,7 +2217,7 @@ static HRESULT OnCacheVerifyPayload(
2213 __in BURN_PACKAGES* pPackages, 2217 __in BURN_PACKAGES* pPackages,
2214 __in BURN_PAYLOADS* pPayloads, 2218 __in BURN_PAYLOADS* pPayloads,
2215 __in BYTE* pbData, 2219 __in BYTE* pbData,
2216 __in DWORD cbData 2220 __in SIZE_T cbData
2217 ) 2221 )
2218{ 2222{
2219 HRESULT hr = S_OK; 2223 HRESULT hr = S_OK;
@@ -2273,7 +2277,7 @@ static void OnCacheCleanup(
2273static HRESULT OnProcessDependentRegistration( 2277static HRESULT OnProcessDependentRegistration(
2274 __in const BURN_REGISTRATION* pRegistration, 2278 __in const BURN_REGISTRATION* pRegistration,
2275 __in BYTE* pbData, 2279 __in BYTE* pbData,
2276 __in DWORD cbData 2280 __in SIZE_T cbData
2277 ) 2281 )
2278{ 2282{
2279 HRESULT hr = S_OK; 2283 HRESULT hr = S_OK;
@@ -2309,7 +2313,7 @@ static HRESULT OnExecuteExePackage(
2309 __in BURN_RELATED_BUNDLES* pRelatedBundles, 2313 __in BURN_RELATED_BUNDLES* pRelatedBundles,
2310 __in BURN_VARIABLES* pVariables, 2314 __in BURN_VARIABLES* pVariables,
2311 __in BYTE* pbData, 2315 __in BYTE* pbData,
2312 __in DWORD cbData 2316 __in SIZE_T cbData
2313 ) 2317 )
2314{ 2318{
2315 HRESULT hr = S_OK; 2319 HRESULT hr = S_OK;
@@ -2393,7 +2397,7 @@ static HRESULT OnExecuteMsiPackage(
2393 __in BURN_PACKAGES* pPackages, 2397 __in BURN_PACKAGES* pPackages,
2394 __in BURN_VARIABLES* pVariables, 2398 __in BURN_VARIABLES* pVariables,
2395 __in BYTE* pbData, 2399 __in BYTE* pbData,
2396 __in DWORD cbData 2400 __in SIZE_T cbData
2397 ) 2401 )
2398{ 2402{
2399 HRESULT hr = S_OK; 2403 HRESULT hr = S_OK;
@@ -2490,7 +2494,7 @@ static HRESULT OnExecuteMspPackage(
2490 __in BURN_PACKAGES* pPackages, 2494 __in BURN_PACKAGES* pPackages,
2491 __in BURN_VARIABLES* pVariables, 2495 __in BURN_VARIABLES* pVariables,
2492 __in BYTE* pbData, 2496 __in BYTE* pbData,
2493 __in DWORD cbData 2497 __in SIZE_T cbData
2494 ) 2498 )
2495{ 2499{
2496 HRESULT hr = S_OK; 2500 HRESULT hr = S_OK;
@@ -2585,7 +2589,7 @@ static HRESULT OnExecuteMsuPackage(
2585 __in BURN_PACKAGES* pPackages, 2589 __in BURN_PACKAGES* pPackages,
2586 __in BURN_VARIABLES* pVariables, 2590 __in BURN_VARIABLES* pVariables,
2587 __in BYTE* pbData, 2591 __in BYTE* pbData,
2588 __in DWORD cbData 2592 __in SIZE_T cbData
2589 ) 2593 )
2590{ 2594{
2591 HRESULT hr = S_OK; 2595 HRESULT hr = S_OK;
@@ -2644,7 +2648,7 @@ static HRESULT OnExecutePackageProviderAction(
2644 __in BURN_PACKAGES* pPackages, 2648 __in BURN_PACKAGES* pPackages,
2645 __in BURN_RELATED_BUNDLES* pRelatedBundles, 2649 __in BURN_RELATED_BUNDLES* pRelatedBundles,
2646 __in BYTE* pbData, 2650 __in BYTE* pbData,
2647 __in DWORD cbData 2651 __in SIZE_T cbData
2648 ) 2652 )
2649{ 2653{
2650 HRESULT hr = S_OK; 2654 HRESULT hr = S_OK;
@@ -2684,7 +2688,7 @@ static HRESULT OnExecutePackageDependencyAction(
2684 __in BURN_PACKAGES* pPackages, 2688 __in BURN_PACKAGES* pPackages,
2685 __in BURN_RELATED_BUNDLES* pRelatedBundles, 2689 __in BURN_RELATED_BUNDLES* pRelatedBundles,
2686 __in BYTE* pbData, 2690 __in BYTE* pbData,
2687 __in DWORD cbData 2691 __in SIZE_T cbData
2688 ) 2692 )
2689{ 2693{
2690 HRESULT hr = S_OK; 2694 HRESULT hr = S_OK;
@@ -2953,7 +2957,7 @@ LExit:
2953static HRESULT OnCleanPackage( 2957static HRESULT OnCleanPackage(
2954 __in BURN_PACKAGES* pPackages, 2958 __in BURN_PACKAGES* pPackages,
2955 __in BYTE* pbData, 2959 __in BYTE* pbData,
2956 __in DWORD cbData 2960 __in SIZE_T cbData
2957 ) 2961 )
2958{ 2962{
2959 HRESULT hr = S_OK; 2963 HRESULT hr = S_OK;
@@ -2982,7 +2986,7 @@ static HRESULT OnLaunchApprovedExe(
2982 __in BURN_APPROVED_EXES* pApprovedExes, 2986 __in BURN_APPROVED_EXES* pApprovedExes,
2983 __in BURN_VARIABLES* pVariables, 2987 __in BURN_VARIABLES* pVariables,
2984 __in BYTE* pbData, 2988 __in BYTE* pbData,
2985 __in DWORD cbData 2989 __in SIZE_T cbData
2986 ) 2990 )
2987{ 2991{
2988 HRESULT hr = S_OK; 2992 HRESULT hr = S_OK;
@@ -3051,7 +3055,7 @@ LExit:
3051static HRESULT OnMsiBeginTransaction( 3055static HRESULT OnMsiBeginTransaction(
3052 __in BURN_PACKAGES* pPackages, 3056 __in BURN_PACKAGES* pPackages,
3053 __in BYTE* pbData, 3057 __in BYTE* pbData,
3054 __in DWORD cbData 3058 __in SIZE_T cbData
3055 ) 3059 )
3056{ 3060{
3057 HRESULT hr = S_OK; 3061 HRESULT hr = S_OK;
@@ -3067,7 +3071,7 @@ static HRESULT OnMsiBeginTransaction(
3067 hr = BuffReadString(pbData, cbData, &iData, &sczLogPath); 3071 hr = BuffReadString(pbData, cbData, &iData, &sczLogPath);
3068 ExitOnFailure(hr, "Failed to read transaction log path."); 3072 ExitOnFailure(hr, "Failed to read transaction log path.");
3069 3073
3070 PackageFindRollbackBoundaryById(pPackages, sczId, &pRollbackBoundary); 3074 hr = PackageFindRollbackBoundaryById(pPackages, sczId, &pRollbackBoundary);
3071 ExitOnFailure(hr, "Failed to find rollback boundary: %ls", sczId); 3075 ExitOnFailure(hr, "Failed to find rollback boundary: %ls", sczId);
3072 3076
3073 pRollbackBoundary->sczLogPath = sczLogPath; 3077 pRollbackBoundary->sczLogPath = sczLogPath;
@@ -3089,7 +3093,7 @@ LExit:
3089static HRESULT OnMsiCommitTransaction( 3093static HRESULT OnMsiCommitTransaction(
3090 __in BURN_PACKAGES* pPackages, 3094 __in BURN_PACKAGES* pPackages,
3091 __in BYTE* pbData, 3095 __in BYTE* pbData,
3092 __in DWORD cbData 3096 __in SIZE_T cbData
3093 ) 3097 )
3094{ 3098{
3095 HRESULT hr = S_OK; 3099 HRESULT hr = S_OK;
@@ -3105,7 +3109,7 @@ static HRESULT OnMsiCommitTransaction(
3105 hr = BuffReadString(pbData, cbData, &iData, &sczLogPath); 3109 hr = BuffReadString(pbData, cbData, &iData, &sczLogPath);
3106 ExitOnFailure(hr, "Failed to read transaction log path."); 3110 ExitOnFailure(hr, "Failed to read transaction log path.");
3107 3111
3108 PackageFindRollbackBoundaryById(pPackages, sczId, &pRollbackBoundary); 3112 hr = PackageFindRollbackBoundaryById(pPackages, sczId, &pRollbackBoundary);
3109 ExitOnFailure(hr, "Failed to find rollback boundary: %ls", sczId); 3113 ExitOnFailure(hr, "Failed to find rollback boundary: %ls", sczId);
3110 3114
3111 pRollbackBoundary->sczLogPath = sczLogPath; 3115 pRollbackBoundary->sczLogPath = sczLogPath;
@@ -3127,7 +3131,7 @@ LExit:
3127static HRESULT OnMsiRollbackTransaction( 3131static HRESULT OnMsiRollbackTransaction(
3128 __in BURN_PACKAGES* pPackages, 3132 __in BURN_PACKAGES* pPackages,
3129 __in BYTE* pbData, 3133 __in BYTE* pbData,
3130 __in DWORD cbData 3134 __in SIZE_T cbData
3131 ) 3135 )
3132{ 3136{
3133 HRESULT hr = S_OK; 3137 HRESULT hr = S_OK;
@@ -3143,7 +3147,7 @@ static HRESULT OnMsiRollbackTransaction(
3143 hr = BuffReadString(pbData, cbData, &iData, &sczLogPath); 3147 hr = BuffReadString(pbData, cbData, &iData, &sczLogPath);
3144 ExitOnFailure(hr, "Failed to read transaction log path."); 3148 ExitOnFailure(hr, "Failed to read transaction log path.");
3145 3149
3146 PackageFindRollbackBoundaryById(pPackages, sczId, &pRollbackBoundary); 3150 hr = PackageFindRollbackBoundaryById(pPackages, sczId, &pRollbackBoundary);
3147 ExitOnFailure(hr, "Failed to find rollback boundary: %ls", sczId); 3151 ExitOnFailure(hr, "Failed to find rollback boundary: %ls", sczId);
3148 3152
3149 pRollbackBoundary->sczLogPath = sczLogPath; 3153 pRollbackBoundary->sczLogPath = sczLogPath;