Commit c09f1357 authored by Paul TBBle Hampson's avatar Paul TBBle Hampson Committed by Alexandre Julliard

winefile: Don't use child after it has been freed.

If winefile is unable to create a window, it frees the child pointer. However, it then proceeds to use the child pointer.
parent aacbe97a
......@@ -4706,7 +4706,7 @@ static void InitInstance(HINSTANCE hinstance)
}
static void show_frame(HWND hwndParent, int cmdshow, LPCTSTR path)
static BOOL show_frame(HWND hwndParent, int cmdshow, LPCTSTR path)
{
static const TCHAR sMDICLIENT[] = {'M','D','I','C','L','I','E','N','T','\0'};
......@@ -4718,7 +4718,7 @@ static void show_frame(HWND hwndParent, int cmdshow, LPCTSTR path)
CLIENTCREATESTRUCT ccs;
if (Globals.hMainWnd)
return;
return TRUE;
opts = load_registry_settings();
hMenuFrame = LoadMenu(Globals.hInstance, MAKEINTRESOURCE(IDM_WINEFILE));
......@@ -4796,8 +4796,10 @@ static void show_frame(HWND hwndParent, int cmdshow, LPCTSTR path)
child->pos.rcNormalPosition.right = 320;
child->pos.rcNormalPosition.bottom = 280;
if (!create_child_window(child))
if (!create_child_window(child)) {
HeapFree(GetProcessHeap(), 0, child);
return FALSE;
}
SetWindowPlacement(child->hwnd, &child->pos);
......@@ -4807,7 +4809,7 @@ static void show_frame(HWND hwndParent, int cmdshow, LPCTSTR path)
UpdateWindow(Globals.hMainWnd);
if (path && path[0])
if (child->hwnd && path && path[0])
{
int index,count;
TCHAR drv[_MAX_DRIVE+1], dir[_MAX_DIR], name[_MAX_FNAME], ext[_MAX_EXT];
......@@ -4835,6 +4837,7 @@ static void show_frame(HWND hwndParent, int cmdshow, LPCTSTR path)
}
}
}
return TRUE;
}
static void ExitInstance(void)
......@@ -4888,7 +4891,11 @@ static int winefile_main(HINSTANCE hinstance, int cmdshow, LPCTSTR path)
InitInstance(hinstance);
show_frame(0, cmdshow, path);
if( !show_frame(0, cmdshow, path) )
{
ExitInstance();
return 1;
}
while(GetMessage(&msg, 0, 0, 0)) {
if (Globals.hmdiclient && TranslateMDISysAccel(Globals.hmdiclient, &msg))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment