diff --git a/client/CMT.cpp b/client/CMT.cpp index eac737da0..9cfc3d2a0 100644 --- a/client/CMT.cpp +++ b/client/CMT.cpp @@ -908,17 +908,26 @@ void playIntro() void dispose() { - if (console) - delete console; + if(VLC) + { + delete VLC; + VLC = nullptr; + } // cleanup, mostly to remove false leaks from analyzer CResourceHandler::clear(); - if (CCS) + if(CCS) { CCS->musich->release(); CCS->soundh->release(); } CMessage::dispose(); + + if(console) + { + delete console; // should be removed after everything else since used by logging + console = nullptr; + } } static bool checkVideoMode(int monitorIndex, int w, int h, int& bpp, bool fullscreen) diff --git a/server/CVCMIServer.cpp b/server/CVCMIServer.cpp index 66cf905de..dc26f741d 100644 --- a/server/CVCMIServer.cpp +++ b/server/CVCMIServer.cpp @@ -635,7 +635,8 @@ int main(int argc, char** argv) //and return non-zero status so client can detect error throw; } - //delete VLC; //can't be re-enabled due to access to already freed memory in bonus system + delete VLC; + VLC = nullptr; CResourceHandler::clear(); return 0;