summaryrefslogtreecommitdiff
path: root/protocols/Skype/src/skype_account.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Skype/src/skype_account.cpp')
-rw-r--r--protocols/Skype/src/skype_account.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/protocols/Skype/src/skype_account.cpp b/protocols/Skype/src/skype_account.cpp
index 6002061a6f..e4e2887481 100644
--- a/protocols/Skype/src/skype_account.cpp
+++ b/protocols/Skype/src/skype_account.cpp
@@ -32,8 +32,11 @@ void CSkypeProto::OnAccountChanged(int prop)
if (this->rememberPassword && whyLogout == CAccount::INCORRECT_PASSWORD)
{
this->rememberPassword = false;
- if (this->password)
+ if (this->password)
+ {
::mir_free(this->password);
+ this->password = NULL;
+ }
}
}
}
@@ -81,7 +84,10 @@ bool CSkypeProto::IsOnline()
void __cdecl CSkypeProto::SignInAsync(void*)
{
if ( !this->rememberPassword)
+ {
::mir_free(this->password);
+ this->password = NULL;
+ }
else
{
::CallService(MS_DB_CRYPT_ENCODESTRING, ::strlen(this->password), LPARAM(this->password));
@@ -109,12 +115,18 @@ bool CSkypeProto::SignIn(int status)
if ( !this->rememberPassword)
{
if (this->password)
+ {
::mir_free(this->password);
+ this->password = NULL;
+ }
this->password = ::DBGetString(NULL, this->m_szModuleName, SKYPE_SETTINGS_PASSWORD);
if ( !this->password || !::strlen(this->password))
{
if (this->password)
+ {
::mir_free(this->password);
+ this->password = NULL;
+ }
PasswordRequestBoxParam param(this->login);
if ( !this->RequestPassword(param))
{