aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/engine.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-06-07 12:13:45 -0500
committerSean Hall <r.sean.hall@gmail.com>2021-06-09 13:47:53 -0500
commit9f360945ce3703677701b12267a42334bbe7dca1 (patch)
tree18afcfb2afd29c55dba86a9511f5d283fec3f047 /src/burn/engine/engine.cpp
parent1d3bd04d4aca82979b08a955dc0bf61eb80f2e66 (diff)
downloadwix-9f360945ce3703677701b12267a42334bbe7dca1.tar.gz
wix-9f360945ce3703677701b12267a42334bbe7dca1.tar.bz2
wix-9f360945ce3703677701b12267a42334bbe7dca1.zip
Try to log Burn command line even if it was invalid.
Diffstat (limited to 'src/burn/engine/engine.cpp')
-rw-r--r--src/burn/engine/engine.cpp42
1 files changed, 30 insertions, 12 deletions
diff --git a/src/burn/engine/engine.cpp b/src/burn/engine/engine.cpp
index 8f024e98..f9dd2184 100644
--- a/src/burn/engine/engine.cpp
+++ b/src/burn/engine/engine.cpp
@@ -341,26 +341,44 @@ static HRESULT InitializeEngineState(
341 wzParam = &pEngineState->argv[i][2 + lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED)]; 341 wzParam = &pEngineState->argv[i][2 + lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED)];
342 if (L'=' != wzParam[-1] || L'\0' == wzParam[0]) 342 if (L'=' != wzParam[-1] || L'\0' == wzParam[0])
343 { 343 {
344 ExitOnRootFailure(hr = E_INVALIDARG, "Missing required parameter for switch: %ls", BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED); 344 pEngineState->fInvalidCommandLine = TRUE;
345 TraceLog(E_INVALIDARG, "Missing required parameter for switch: %ls", BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED);
346 }
347 else
348 {
349 hr = StrStringToUInt64(wzParam, 0, &qw);
350 if (FAILED(hr))
351 {
352 TraceLog(hr, "Failed to parse file handle: '%ls'", wzParam);
353 hr = S_OK;
354 }
355 else
356 {
357 hSourceEngineFile = (HANDLE)qw;
358 }
345 } 359 }
346
347 hr = StrStringToUInt64(wzParam, 0, &qw);
348 ExitOnFailure(hr, "Failed to parse file handle: '%ls'", (wzParam));
349
350 hSourceEngineFile = (HANDLE)qw;
351 } 360 }
352 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &pEngineState->argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF), BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF, lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF))) 361 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &pEngineState->argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF), BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF, lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF)))
353 { 362 {
354 wzParam = &pEngineState->argv[i][2 + lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF)]; 363 wzParam = &pEngineState->argv[i][2 + lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF)];
355 if (L'=' != wzParam[-1] || L'\0' == wzParam[0]) 364 if (L'=' != wzParam[-1] || L'\0' == wzParam[0])
356 { 365 {
357 ExitOnRootFailure(hr = E_INVALIDARG, "Missing required parameter for switch: %ls", BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF); 366 pEngineState->fInvalidCommandLine = TRUE;
367 TraceLog(E_INVALIDARG, "Missing required parameter for switch: %ls", BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF);
368 }
369 else
370 {
371 hr = StrStringToUInt64(wzParam, 0, &qw);
372 if (FAILED(hr))
373 {
374 TraceLog(hr, "Failed to parse file handle: '%ls'", wzParam);
375 hr = S_OK;
376 }
377 else
378 {
379 hSectionFile = (HANDLE)qw;
380 }
358 } 381 }
359
360 hr = StrStringToUInt64(wzParam, 0, &qw);
361 ExitOnFailure(hr, "Failed to parse file handle: '%ls'", (wzParam));
362
363 hSectionFile = (HANDLE)qw;
364 } 382 }
365 } 383 }
366 } 384 }