Skip to content

Commit 2409a81

Browse files
committed
AppCef: Check for non secure path
1 parent e3f2901 commit 2409a81

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

IntelPresentMon/AppCef/source/winmain.cpp

+17-1
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,8 @@ LRESULT CALLBACK MessageWindowWndProc(HWND window_handle, UINT message, WPARAM w
119119
return DefWindowProc(window_handle, message, w_param, l_param);
120120
}
121121

122+
#define PROGRAM_NAME "Intel PresentMon"
123+
122124
HWND CreateBrowserWindow(HINSTANCE instance_handle, int show_minimize_or_maximize)
123125
{
124126
WNDCLASSEX wcex = { 0 };
@@ -136,7 +138,7 @@ HWND CreateBrowserWindow(HINSTANCE instance_handle, int show_minimize_or_maximiz
136138
RegisterClassEx(&wcex);
137139

138140
HWND hwnd = CreateWindow(
139-
BrowserWindowClassName, "Intel PresentMon",
141+
BrowserWindowClassName, PROGRAM_NAME,
140142
WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN, 200, 20,
141143
1360, 1020, nullptr, nullptr, instance_handle, nullptr
142144
);
@@ -174,6 +176,20 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
174176
{
175177
using namespace client;
176178
try {
179+
#ifdef NDEBUG
180+
std::wstring _path = std::filesystem::current_path();
181+
if (_path.find(L"Program Files\\", 0) == -1LL) // -1 means no offset was found
182+
{
183+
wchar_t msg[512]{};
184+
(void)_snwprintf_s(msg, _countof(msg),
185+
L"Unable to start " PROGRAM_NAME " due to path not being in privileged location.\n"
186+
"Path: \"%s\"\n"
187+
"You must copy installation files to privileged location such as \"C:\\Program Files\".", _path.c_str());
188+
MessageBoxW(nullptr, msg, L"" PROGRAM_NAME " Startup Error", MB_ICONERROR | MB_APPLMODAL | MB_SETFOREGROUND);
189+
return -1;
190+
}
191+
#endif
192+
#undef PROGRAM_NAME
177193
opt::init();
178194
util::BootServices();
179195

0 commit comments

Comments
 (0)