diff options
| -rw-r--r-- | protocols/SkypeWeb/src/skype_login.cpp | 11 | ||||
| -rw-r--r-- | protocols/SkypeWeb/src/skype_options.cpp | 16 | 
2 files changed, 17 insertions, 10 deletions
diff --git a/protocols/SkypeWeb/src/skype_login.cpp b/protocols/SkypeWeb/src/skype_login.cpp index da844ae286..ab650a5e0e 100644 --- a/protocols/SkypeWeb/src/skype_login.cpp +++ b/protocols/SkypeWeb/src/skype_login.cpp @@ -25,9 +25,9 @@ void CSkypeProto::Login()  	m_iStatus = ID_STATUS_CONNECTING;
  	requestQueue->Start();
  	int tokenExpires(getDword("TokenExpiresIn", 0));
 -	ptrA login(getStringA(SKYPE_SETTINGS_ID));
 -	ptrA password(getStringA(SKYPE_SETTINGS_PASSWORD));
 -	if (login == NULL || password == NULL)
 +	ptrA szLogin(getStringA(SKYPE_SETTINGS_ID));
 +	ptrA szPassword(getStringA(SKYPE_SETTINGS_PASSWORD));
 +	if (szLogin == NULL || szPassword == NULL)
  	{
  		ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN);
  		return;
 @@ -37,11 +37,12 @@ void CSkypeProto::Login()  		OnLoginSuccess();
  	else
  	{
 -		if (strstr(login, "@"))
 +		if (strchr(szLogin, '@'))
  			SendRequest(new LoginMSRequest(), &CSkypeProto::OnMSLoginFirst);
  		else
 -			SendRequest(new LoginOAuthRequest(login, password), &CSkypeProto::OnLoginOAuth);
 +			SendRequest(new LoginOAuthRequest(szLogin, szPassword), &CSkypeProto::OnLoginOAuth);
  	}
 +	SecureZeroMemory(szPassword, mir_strlen(szPassword));
  }
  void CSkypeProto::OnLoginOAuth(const NETLIBHTTPREQUEST *response)
 diff --git a/protocols/SkypeWeb/src/skype_options.cpp b/protocols/SkypeWeb/src/skype_options.cpp index 7342a077ac..4253930fba 100644 --- a/protocols/SkypeWeb/src/skype_options.cpp +++ b/protocols/SkypeWeb/src/skype_options.cpp @@ -52,15 +52,21 @@ void CSkypeOptionsMain::OnInitDialog()  void CSkypeOptionsMain::OnApply()
  {
 -	ptrA tszNewSkypename(m_skypename.GetTextA()), tszNewPassword(m_password.GetTextA()),
 -		tszOldSkypename(m_proto->getStringA(SKYPE_SETTINGS_ID)), tszOldPassword(m_proto->getStringA("Password"));
 -	if (mir_strcmpi(tszNewSkypename, tszOldSkypename) || mir_strcmp(tszNewPassword, tszOldPassword))
 +	ptrA szNewSkypename(m_skypename.GetTextA()),
 +		 szNewPassword(m_password.GetTextA()),
 +		 szOldSkypename(m_proto->getStringA(SKYPE_SETTINGS_ID)),
 +		 szOldPassword(m_proto->getStringA("Password"));
 +
 +	if (mir_strcmpi(szNewSkypename, szOldSkypename) || mir_strcmp(szNewPassword, szOldPassword))
  		m_proto->delSetting("TokenExpiresIn");
 -	m_proto->setString(SKYPE_SETTINGS_ID, tszNewSkypename);
 -	m_proto->setString("Password", tszNewPassword);
 +	m_proto->setString(SKYPE_SETTINGS_ID, szNewSkypename);
 +	m_proto->setString("Password", szNewPassword);
  	ptrT group(m_group.GetText());
  	if (mir_tstrlen(group) > 0 && !Clist_GroupExists(group))
  		Clist_CreateGroup(0, group);
 +
 +	SecureZeroMemory(szNewPassword, mir_strlen(szNewPassword));
 +	SecureZeroMemory(szOldPassword, mir_strlen(szOldPassword));
  }
  /////////////////////////////////////////////////////////////////////////////////
  | 
