diff --git a/checkin_notes b/checkin_notes index 0eef79a860..068cbb7c6e 100755 --- a/checkin_notes +++ b/checkin_notes @@ -20068,3 +20068,18 @@ Bruce 23 Nov 2004 UTC config.h.in (shouldn't be here anyway) api/ boinc_gl.h + +Rom 23 Nov 2004 + - Bug Fix: Fix a crashing condition for both the screensaver and core client on + Win9x machines due to the Window Station and Desktop code. + - Bug Fix: Setup the core client to redirect stderr and stdout even though it is + running as a console. It's useful to do this in the case of where the core + client is launched from the boincmgr and so stderr and stdout cannot be + redirected. + + client/ + main.C + client/win/ + win_screensaver.cpp + clientgui/ + BOINCGUIApp.cpp diff --git a/client/main.C b/client/main.C index 0780c0c48d..5772ce08fc 100644 --- a/client/main.C +++ b/client/main.C @@ -231,7 +231,9 @@ int boinc_main_loop(int argc, char** argv) { boinc_init_diagnostics( BOINC_DIAG_DUMPCALLSTACKENABLED | BOINC_DIAG_HEAPCHECKENABLED | - BOINC_DIAG_TRACETOSTDERR + BOINC_DIAG_TRACETOSTDERR | + BOINC_DIAG_REDIRECTSTDERR | + BOINC_DIAG_REDIRECTSTDOUT ); retval = check_unique_instance(); diff --git a/client/win/win_screensaver.cpp b/client/win/win_screensaver.cpp index b19f9e663e..e89dfb7bdf 100755 --- a/client/win/win_screensaver.cpp +++ b/client/win/win_screensaver.cpp @@ -263,6 +263,9 @@ VOID CScreensaver::StartupBOINC() DWORD dwBlankTime; BOOL bReturnValue; + memset(szCurrentWindowStation, 0, sizeof(szCurrentWindowStation)/sizeof(TCHAR)); + memset(szCurrentDesktop, 0, sizeof(szCurrentDesktop)/sizeof(TCHAR)); + if (!m_bIs9x) { // Retrieve the current window station and desktop names diff --git a/clientgui/BOINCGUIApp.cpp b/clientgui/BOINCGUIApp.cpp index 0dfcadcb90..936dfb3756 100644 --- a/clientgui/BOINCGUIApp.cpp +++ b/clientgui/BOINCGUIApp.cpp @@ -156,7 +156,7 @@ bool CBOINCGUIApp::OnCmdLineParsed(wxCmdLineParser &parser) void CBOINCGUIApp::DetectDefaultWindowStation() { wxChar szWindowStation[256]; - memset(szWindowStation, 0, sizeof(szWindowStation)); + memset(szWindowStation, 0, sizeof(szWindowStation)/sizeof(wxChar)); #ifdef __WXMSW__ @@ -181,7 +181,7 @@ void CBOINCGUIApp::DetectDefaultWindowStation() void CBOINCGUIApp::DetectDefaultDesktop() { wxChar szDesktop[256]; - memset(szDesktop, 0, sizeof(szDesktop)); + memset(szDesktop, 0, sizeof(szDesktop)/sizeof(wxChar)); #ifdef __WXMSW__