summaryrefslogtreecommitdiff
path: root/src/burn/engine/core.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine/core.cpp')
-rw-r--r--src/burn/engine/core.cpp27
1 files changed, 16 insertions, 11 deletions
diff --git a/src/burn/engine/core.cpp b/src/burn/engine/core.cpp
index f71103a8..0468d406 100644
--- a/src/burn/engine/core.cpp
+++ b/src/burn/engine/core.cpp
@@ -1375,7 +1375,11 @@ extern "C" HRESULT CoreParseCommandLine(
1375 } 1375 }
1376 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_CLEAN_ROOM), BURN_COMMANDLINE_SWITCH_CLEAN_ROOM, lstrlenW(BURN_COMMANDLINE_SWITCH_CLEAN_ROOM))) 1376 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_CLEAN_ROOM), BURN_COMMANDLINE_SWITCH_CLEAN_ROOM, lstrlenW(BURN_COMMANDLINE_SWITCH_CLEAN_ROOM)))
1377 { 1377 {
1378 if (BURN_MODE_UNTRUSTED != *pMode) 1378 if (BURN_MODE_UNTRUSTED == *pMode)
1379 {
1380 *pMode = BURN_MODE_NORMAL;
1381 }
1382 else
1379 { 1383 {
1380 fInvalidCommandLine = TRUE; 1384 fInvalidCommandLine = TRUE;
1381 TraceLog(E_INVALIDARG, "Multiple mode command-line switches were provided."); 1385 TraceLog(E_INVALIDARG, "Multiple mode command-line switches were provided.");
@@ -1383,17 +1387,18 @@ extern "C" HRESULT CoreParseCommandLine(
1383 1387
1384 // Get a pointer to the next character after the switch. 1388 // Get a pointer to the next character after the switch.
1385 LPCWSTR wzParam = &argv[i][1 + lstrlenW(BURN_COMMANDLINE_SWITCH_CLEAN_ROOM)]; 1389 LPCWSTR wzParam = &argv[i][1 + lstrlenW(BURN_COMMANDLINE_SWITCH_CLEAN_ROOM)];
1386 if (L'=' != wzParam[0] || L'\0' == wzParam[1]) 1390 if (L'\0' != wzParam[0])
1387 {
1388 fInvalidCommandLine = TRUE;
1389 TraceLog(E_INVALIDARG, "Missing required parameter for switch: %ls", BURN_COMMANDLINE_SWITCH_CLEAN_ROOM);
1390 }
1391 else
1392 { 1391 {
1393 *pMode = BURN_MODE_NORMAL; 1392 if (L'=' != wzParam[0])
1394 1393 {
1395 hr = StrAllocString(psczSourceProcessPath, wzParam + 1, 0); 1394 fInvalidCommandLine = TRUE;
1396 ExitOnFailure(hr, "Failed to copy source process path."); 1395 TraceLog(E_INVALIDARG, "Invalid switch: %ls", argv[i]);
1396 }
1397 else if (L'\0' != wzParam[1])
1398 {
1399 hr = StrAllocString(psczSourceProcessPath, wzParam + 1, 0);
1400 ExitOnFailure(hr, "Failed to copy source process path.");
1401 }
1397 } 1402 }
1398 } 1403 }
1399 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_EMBEDDED, -1)) 1404 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_EMBEDDED, -1))