diff options
author | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2011-10-26 12:27:21 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2011-10-26 12:27:21 +0300 |
commit | 4d8b70aaee170fa46116f10ef3eed3eb30ceffea (patch) | |
tree | 8dfec2ae40d5463923dfaac1ecd1daca7b919b27 /messages.cpp | |
parent | 5292cc0aea09b39be626f14e199d765cca896883 (diff) |
fixed crash on key password enter
Diffstat (limited to 'messages.cpp')
-rwxr-xr-x | messages.cpp | 23 |
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); } |