summaryrefslogtreecommitdiffstats
path: root/src/windows/identity/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/windows/identity/plugins')
-rw-r--r--src/windows/identity/plugins/krb4/krb4configdlg.c22
-rw-r--r--src/windows/identity/plugins/krb4/krb4newcreds.c11
-rw-r--r--src/windows/identity/plugins/krb5/krb5configcc.c11
-rw-r--r--src/windows/identity/plugins/krb5/krb5configid.c10
-rw-r--r--src/windows/identity/plugins/krb5/krb5configids.c14
-rw-r--r--src/windows/identity/plugins/krb5/krb5newcreds.c24
6 files changed, 89 insertions, 3 deletions
diff --git a/src/windows/identity/plugins/krb4/krb4configdlg.c b/src/windows/identity/plugins/krb4/krb4configdlg.c
index 338cf7fa8..309bf542b 100644
--- a/src/windows/identity/plugins/krb4/krb4configdlg.c
+++ b/src/windows/identity/plugins/krb4/krb4configdlg.c
@@ -113,6 +113,9 @@ krb4_ids_config_proc(HWND hwnd,
d = (k4_ids_data *) (LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ break;
+
if (HIWORD(wParam) == BN_CLICKED) {
k4_ids_check_mod(hwnd, d);
}
@@ -122,6 +125,9 @@ krb4_ids_config_proc(HWND hwnd,
d = (k4_ids_data *) (LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ break;
+
if (HIWORD(wParam) == WMCFG_APPLY) {
k4_ids_write_params(hwnd, d);
}
@@ -131,7 +137,11 @@ krb4_ids_config_proc(HWND hwnd,
d = (k4_ids_data *) (LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
- PFREE(d);
+ if (d) {
+ PFREE(d);
+ SetWindowLongPtr(hwnd, DWLP_USER, (LONG_PTR) 0);
+ }
+
break;
}
@@ -297,6 +307,9 @@ krb4_id_config_proc(HWND hwnd,
d = (k4_id_data *) (LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ break;
+
if (wParam == MAKEWPARAM(IDC_CFG_GETTIX,
BN_CLICKED)) {
int gettix = 0;
@@ -321,7 +334,7 @@ krb4_id_config_proc(HWND hwnd,
d = (k4_id_data *) (LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
- if (!d)
+ if (d == NULL)
break;
if (HIWORD(wParam) == WMCFG_APPLY) {
@@ -343,10 +356,12 @@ krb4_id_config_proc(HWND hwnd,
d = (k4_id_data *) (LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
- if (!d)
+ if (d == NULL)
break;
PFREE(d);
+
+ SetWindowLongPtr(hwnd, DWLP_USER, 0);
}
break;
}
@@ -531,6 +546,7 @@ krb4_confg_proc(HWND hwnd,
if (d) {
PFREE(d);
+ SetWindowLongPtr(hwnd, DWLP_USER, (LONG_PTR) 0);
}
break;
diff --git a/src/windows/identity/plugins/krb4/krb4newcreds.c b/src/windows/identity/plugins/krb4/krb4newcreds.c
index c2d477e0e..9c200b618 100644
--- a/src/windows/identity/plugins/krb4/krb4newcreds.c
+++ b/src/windows/identity/plugins/krb4/krb4newcreds.c
@@ -389,6 +389,9 @@ INT_PTR CALLBACK k4_nc_dlg_proc(HWND hwnd,
d = (k4_dlg_data *) (LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ break;
+
k4_update_data(d);
if (LOWORD(wParam) == IDC_NCK4_OBTAIN) {
@@ -404,6 +407,10 @@ INT_PTR CALLBACK k4_nc_dlg_proc(HWND hwnd,
{
d = (k4_dlg_data *) (LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+
+ if (d == NULL)
+ break;
+
k4_handle_wmnc_notify(d, wParam, lParam);
}
break;
@@ -413,9 +420,13 @@ INT_PTR CALLBACK k4_nc_dlg_proc(HWND hwnd,
d = (k4_dlg_data *) (LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ break;
+
d->nct->aux = 0;
PFREE(d);
+ SetWindowLongPtr(hwnd, DWLP_USER, 0);
}
break;
}
diff --git a/src/windows/identity/plugins/krb5/krb5configcc.c b/src/windows/identity/plugins/krb5/krb5configcc.c
index b2b498e68..13c5ac86b 100644
--- a/src/windows/identity/plugins/krb5/krb5configcc.c
+++ b/src/windows/identity/plugins/krb5/krb5configcc.c
@@ -354,6 +354,10 @@ k5_ccconfig_dlgproc(HWND hwnd,
case WM_COMMAND:
d = (k5_ccc_dlg_data *) (DWORD_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+
+ if (d == NULL)
+ break;
+
switch(wParam) {
case MAKEWPARAM(IDC_CFG_ADD, BN_CLICKED):
{
@@ -543,15 +547,22 @@ k5_ccconfig_dlgproc(HWND hwnd,
d = (k5_ccc_dlg_data *) (DWORD_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ break;
+
k5_free_file_ccs(&d->work);
k5_free_file_ccs(&d->save);
PFREE(d);
+ SetWindowLongPtr(hwnd, DWLP_USER, 0);
return TRUE;
case KHUI_WM_CFG_NOTIFY:
d = (k5_ccc_dlg_data *) (DWORD_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ break;
+
switch(HIWORD(wParam)) {
case WMCFG_APPLY:
if (k5_ccc_get_mod(d)) {
diff --git a/src/windows/identity/plugins/krb5/krb5configid.c b/src/windows/identity/plugins/krb5/krb5configid.c
index b5af1c2b2..e730a4bb0 100644
--- a/src/windows/identity/plugins/krb5/krb5configid.c
+++ b/src/windows/identity/plugins/krb5/krb5configid.c
@@ -324,6 +324,9 @@ k5_id_tab_dlgproc(HWND hwnd,
d = (k5_id_dlg_data *) (LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ break;
+
if (HIWORD(wParam) == EN_CHANGE ||
HIWORD(wParam) == BN_CLICKED)
k5_id_check_mod(hwnd, d);
@@ -333,6 +336,9 @@ k5_id_tab_dlgproc(HWND hwnd,
d = (k5_id_dlg_data *) (LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ break;
+
if (HIWORD(wParam) == WMCFG_APPLY) {
k5_id_write_params(hwnd, d);
}
@@ -342,6 +348,9 @@ k5_id_tab_dlgproc(HWND hwnd,
d = (k5_id_dlg_data *) (LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ break;
+
khui_tracker_kill_controls(&d->tc_life);
khui_tracker_kill_controls(&d->tc_renew);
@@ -349,6 +358,7 @@ k5_id_tab_dlgproc(HWND hwnd,
kcdb_identity_release(d->ident);
PFREE(d);
+ SetWindowLongPtr(hwnd, DWLP_USER, 0);
break;
}
return FALSE;
diff --git a/src/windows/identity/plugins/krb5/krb5configids.c b/src/windows/identity/plugins/krb5/krb5configids.c
index 8d6afd473..4699f056a 100644
--- a/src/windows/identity/plugins/krb5/krb5configids.c
+++ b/src/windows/identity/plugins/krb5/krb5configids.c
@@ -221,6 +221,9 @@ k5_ids_tab_dlgproc(HWND hwnd,
d = (k5_ids_dlg_data *) (LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ break;
+
if (HIWORD(wParam) == EN_CHANGE) {
k5_ids_check_mod(d);
} else if (HIWORD(wParam) == BN_CLICKED) {
@@ -245,6 +248,10 @@ k5_ids_tab_dlgproc(HWND hwnd,
case KHUI_WM_CFG_NOTIFY:
d = (k5_ids_dlg_data *) (LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+
+ if (d == NULL)
+ break;
+
if (HIWORD(wParam) == WMCFG_APPLY) {
k5_ids_write_params(d);
}
@@ -254,6 +261,9 @@ k5_ids_tab_dlgproc(HWND hwnd,
d = (k5_ids_dlg_data *) (LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ break;
+
khui_tracker_kill_controls(&d->tc_life);
khui_tracker_kill_controls(&d->tc_renew);
khui_tracker_kill_controls(&d->tc_life_min);
@@ -262,9 +272,13 @@ k5_ids_tab_dlgproc(HWND hwnd,
khui_tracker_kill_controls(&d->tc_renew_max);
PFREE(d);
+
+ SetWindowLongPtr(hwnd, DWLP_USER, 0);
+
break;
}
return FALSE;
}
+
diff --git a/src/windows/identity/plugins/krb5/krb5newcreds.c b/src/windows/identity/plugins/krb5/krb5newcreds.c
index d2458fe50..b382096a0 100644
--- a/src/windows/identity/plugins/krb5/krb5newcreds.c
+++ b/src/windows/identity/plugins/krb5/krb5newcreds.c
@@ -122,6 +122,7 @@ k5_handle_wm_destroy(HWND hwnd,
}
PFREE(d);
+ SetWindowLongPtr(hwnd, DWLP_USER, 0);
return TRUE;
}
@@ -184,6 +185,9 @@ k5_handle_wmnc_notify(HWND hwnd,
d = (k5_dlg_data *)(LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ return TRUE;
+
if (d->nc->subtype == KMSG_CRED_NEW_CREDS) {
khui_tracker_reposition(&d->tc_lifetime);
khui_tracker_reposition(&d->tc_renew);
@@ -201,6 +205,9 @@ k5_handle_wmnc_notify(HWND hwnd,
d = (k5_dlg_data *)(LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ return TRUE;
+
if (d->nc->subtype == KMSG_CRED_PASSWORD)
return TRUE;
@@ -249,6 +256,10 @@ k5_handle_wmnc_notify(HWND hwnd,
d = (k5_dlg_data *)(LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+
+ if (d == NULL)
+ return TRUE;
+
nc = d->nc;
l = (khui_htwnd_link *) lParam;
@@ -277,6 +288,9 @@ k5_handle_wmnc_notify(HWND hwnd,
d = (k5_dlg_data *)(LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ return TRUE;
+
nc = d->nc;
khui_cw_find_type(nc, credtype_id_krb5, &nct);
@@ -352,6 +366,8 @@ k5_handle_wmnc_notify(HWND hwnd,
d = (k5_dlg_data *)(LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ break;
kmq_post_sub_msg(k5_sub, KMSG_CRED,
KMSG_CRED_DIALOG_NEW_IDENTITY,
@@ -365,6 +381,8 @@ k5_handle_wmnc_notify(HWND hwnd,
d = (k5_dlg_data *)(LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ break;
if(!d->sync && d->nc->result == KHUI_NC_RESULT_PROCESS) {
kmq_post_sub_msg(k5_sub, KMSG_CRED,
@@ -382,6 +400,8 @@ k5_handle_wmnc_notify(HWND hwnd,
d = (k5_dlg_data *) (LONG_PTR)
GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ break;
msg = (wchar_t *) lParam;
@@ -420,6 +440,8 @@ k5_handle_wm_notify(HWND hwnd,
pnmh->code == IPN_FIELDCHANGED) {
d = (k5_dlg_data *) (LONG_PTR) GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ return 0;
SendDlgItemMessage(hwnd, IDC_NCK5_PUBLICIP,
IPM_GETADDRESS,
@@ -444,6 +466,8 @@ k5_handle_wm_command(HWND hwnd,
k5_dlg_data * d;
d = (k5_dlg_data *)(LONG_PTR) GetWindowLongPtr(hwnd, DWLP_USER);
+ if (d == NULL)
+ return FALSE;
cid = LOWORD(wParam);
notif = HIWORD(wParam);