diff --git a/Source/cmDynamicLoader.cxx b/Source/cmDynamicLoader.cxx index 8c76ad1a0..a19b6bea7 100644 --- a/Source/cmDynamicLoader.cxx +++ b/Source/cmDynamicLoader.cxx @@ -294,10 +294,11 @@ const char* cmDynamicLoader::LastError() ); // Free the buffer. - LocalFree( lpMsgBuf ); + static char* str = 0; delete [] str; - str = strcpy(new char[strlen((char*)lpMsgBuf)+1], (char*)lpMsgBuf); + str = strcpy(new char[strlen((char*)lpMsgBuf)+1], (char*)lpMsgBuf); + LocalFree( lpMsgBuf ); return str; }