summaryrefslogtreecommitdiff
path: root/messages.cpp
diff options
context:
space:
mode:
authorGluzskiy Alexandr <sss@sss.chaoslab.ru>2011-10-26 12:27:21 +0300
committerGluzskiy Alexandr <sss@sss.chaoslab.ru>2011-10-26 12:27:21 +0300
commit4d8b70aaee170fa46116f10ef3eed3eb30ceffea (patch)
tree8dfec2ae40d5463923dfaac1ecd1daca7b919b27 /messages.cpp
parent5292cc0aea09b39be626f14e199d765cca896883 (diff)
fixed crash on key password enter
Diffstat (limited to 'messages.cpp')
-rwxr-xr-xmessages.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/messages.cpp b/messages.cpp
index ab6197c..1d7e555 100755
--- a/messages.cpp
+++ b/messages.cpp
@@ -924,20 +924,23 @@ static BOOL CALLBACK DlgProcKeyPassword(HWND hwndDlg, UINT msg, WPARAM wParam, L
if(_tcslen(tmp) > 0)
{
extern TCHAR *password;
- if(IsDlgButtonChecked(hwndDlg, IDC_SAVE_PASSWORD))
+ if(password && password[0])
{
- if((strlen(inkeyid) > 0) && !IsDlgButtonChecked(hwndDlg, IDC_DEFAULT_PASSWORD))
+ if(IsDlgButtonChecked(hwndDlg, IDC_SAVE_PASSWORD))
{
- string dbsetting = "szKey_";
- dbsetting += inkeyid;
- dbsetting += "_Password";
- DBWriteContactSettingTString(NULL, szGPGModuleName, dbsetting.c_str(), tmp);
+ if((strlen(inkeyid) > 0) && !IsDlgButtonChecked(hwndDlg, IDC_DEFAULT_PASSWORD))
+ {
+ string dbsetting = "szKey_";
+ dbsetting += inkeyid;
+ dbsetting += "_Password";
+ DBWriteContactSettingTString(NULL, szGPGModuleName, dbsetting.c_str(), tmp);
+ }
+ else
+ DBWriteContactSettingTString(NULL, szGPGModuleName, "szKeyPassword", tmp);
}
- else
- DBWriteContactSettingTString(NULL, szGPGModuleName, "szKeyPassword", tmp);
+ if(password)
+ delete [] password;
}
- if(password)
- delete [] password;
password = new TCHAR [_tcslen(tmp)+1];
_tcscpy(password, tmp);
}