summaryrefslogtreecommitdiffstats
path: root/src/windows/leashdll
diff options
context:
space:
mode:
authorKevin Wasserman <kevin.wasserman@painless-security.com>2012-07-26 21:08:14 -0400
committerBen Kaduk <kaduk@mit.edu>2012-08-29 14:50:19 -0400
commitc6753181c2e59316c40fe0f6d1a55df542401c51 (patch)
tree9acc4c41768488dd7f3f71319b7b0e1a6aa7ecdd /src/windows/leashdll
parentcd6fce8e66300ab0e62e5a0d3a3f3cf13cbe750f (diff)
downloadkrb5-c6753181c2e59316c40fe0f6d1a55df542401c51.tar.gz
krb5-c6753181c2e59316c40fe0f6d1a55df542401c51.tar.xz
krb5-c6753181c2e59316c40fe0f6d1a55df542401c51.zip
Handle missing autocomplete object gracefully
Don't crash if we can't create a CLSID_AutoComplete instance. Signed-off-by: Kevin Wasserman <kevin.wasserman@painless-security.com> ticket: 7321 (new) queue: kfw target_version: 1.10.4 tags: pullup
Diffstat (limited to 'src/windows/leashdll')
-rw-r--r--src/windows/leashdll/lshutil.cpp29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/windows/leashdll/lshutil.cpp b/src/windows/leashdll/lshutil.cpp
index 32dab585b5..37c0723f3b 100644
--- a/src/windows/leashdll/lshutil.cpp
+++ b/src/windows/leashdll/lshutil.cpp
@@ -440,7 +440,8 @@ protected:
}
// add the new one
m_enumString->AddString(princStr);
- m_acdd->ResetEnumerator();
+ if (m_acdd != NULL)
+ m_acdd->ResetEnumerator();
m_princStr = princStr;
}
}
@@ -524,25 +525,25 @@ protected:
IAutoComplete *pac = NULL;
hRes = CoCreateInstance(CLSID_AutoComplete, NULL, CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&pac));
- // @TODO: error handling
+ if (pac != NULL) {
+ pac->Init(m_hwnd, pEnumString, NULL, NULL);
- pac->Init(m_hwnd, pEnumString, NULL, NULL);
-
- IAutoCompleteDropDown* pacdd = NULL;
- hRes = pac->QueryInterface(IID_IAutoCompleteDropDown, (LPVOID*)&pacdd);
- pac->Release();
+ IAutoCompleteDropDown* pacdd = NULL;
+ hRes = pac->QueryInterface(IID_IAutoCompleteDropDown, (LPVOID*)&pacdd);
+ pac->Release();
// @TODO: auto-suggest; other advanced options?
#if 0
- IAutoComplete2 *pac2;
+ IAutoComplete2 *pac2;
- if (SUCCEEDED(pac->QueryInterface(IID_IAutoComplete2, (LPVOID*)&pac2)))
- {
- pac2->SetOptions(ACO_AUTOSUGGEST);
- pac2->Release();
- }
+ if (SUCCEEDED(pac->QueryInterface(IID_IAutoComplete2,
+ (LPVOID*)&pac2))) {
+ pac2->SetOptions(ACO_AUTOSUGGEST);
+ pac2->Release();
+ }
#endif
- m_acdd = pacdd;
+ m_acdd = pacdd;
+ }
}
void DestroyAutocomplete()