aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/engine.cpp
diff options
context:
space:
mode:
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 }