Changeset 95890 in vbox for trunk/src/VBox/Additions/WINNT/VBoxCredProv/VBoxCredProvProvider.cpp
- Timestamp:
- Jul 28, 2022 1:49:20 AM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/VBoxCredProv/VBoxCredProvProvider.cpp
r93115 r95890 213 213 { 214 214 HRESULT hr = S_OK; 215 DWORD dwErr;216 215 217 216 VBoxCredProvVerbose(0, "VBoxCredProv::SetUsageScenario: enmUsageScenario=%d, dwFlags=%ld\n", … … 227 226 VBoxCredProvReportStatus(VBoxGuestFacilityStatus_Active); 228 227 229 dwErr = LoadConfiguration();228 DWORD dwErr = LoadConfiguration(); 230 229 if (dwErr != ERROR_SUCCESS) 231 230 VBoxCredProvVerbose(0, "VBoxCredProv: Error while loading configuration, error=%ld\n", dwErr); … … 239 238 break; 240 239 240 hr = S_OK; 241 241 if (!m_pPoller) 242 242 { 243 try 243 #ifdef RT_EXCEPTIONS_ENABLED 244 try { m_pPoller = new VBoxCredProvPoller(); } 245 catch (std::bad_alloc &) { hr = E_OUTOFMEMORY; } 246 #else 247 m_pPoller = new VBoxCredProvPoller(); 248 AssertStmt(m_pPoller, hr = E_OUTOFMEMORY); 249 #endif 250 if (SUCCEEDED(hr)) 244 251 { 245 m_pPoller = new VBoxCredProvPoller();246 AssertPtr(m_pPoller);247 252 int rc = m_pPoller->Initialize(this); 248 253 if (RT_FAILURE(rc)) 249 254 VBoxCredProvVerbose(0, "VBoxCredProv::SetUsageScenario: Error initializing poller thread, rc=%Rrc\n", rc); 250 } 251 catch (std::bad_alloc &ex) 252 { 253 NOREF(ex); 254 hr = E_OUTOFMEMORY; 255 /** @todo r=bird: Why is the initialize failure ignored here? */ 255 256 } 256 257 } … … 259 260 && !m_pCred) 260 261 { 261 try 262 { 263 m_pCred = new VBoxCredProvCredential(); 264 AssertPtr(m_pPoller); 262 #ifdef RT_EXCEPTIONS_ENABLED 263 try { m_pCred = new VBoxCredProvCredential(); } 264 catch (std::bad_alloc &) { hr = E_OUTOFMEMORY; } 265 #else 266 m_pCred = new VBoxCredProvCredential(); 267 AssertStmt(m_pCred, hr = E_OUTOFMEMORY); 268 #endif 269 if (SUCCEEDED(hr)) 265 270 hr = m_pCred->Initialize(m_enmUsageScenario); 266 }267 catch (std::bad_alloc &ex)268 {269 NOREF(ex);270 hr = E_OUTOFMEMORY;271 }272 271 } 273 272 else … … 277 276 278 277 /* If we failed, do some cleanup. */ 278 /** @todo r=bird: Why aren't we cleaning up m_pPoller too? Very confusing given 279 * that m_pCred wasn't necessarily even created above. Always explain the WHY 280 * when doing something that isn't logical like here! */ 279 281 if (FAILED(hr)) 280 282 { … … 291 293 case CPUS_CREDUI: /* Displays an own UI. We don't need that. */ 292 294 case CPUS_PLAP: /* See Pre-Logon-Access Provider. Not needed (yet). */ 293 294 295 hr = E_NOTIMPL; 295 296 break; … … 571 572 VBoxCredProvProviderCreate(REFIID interfaceID, void **ppvInterface) 572 573 { 573 HRESULT hr; 574 575 try 576 { 577 VBoxCredProvProvider *pProvider = new VBoxCredProvProvider(); 578 AssertPtr(pProvider); 579 hr = pProvider->QueryInterface(interfaceID, ppvInterface); 580 pProvider->Release(); 581 } 582 catch (std::bad_alloc &ex) 583 { 584 NOREF(ex); 585 hr = E_OUTOFMEMORY; 586 } 574 VBoxCredProvProvider *pProvider; 575 #ifdef RT_EXCEPTIONS_ENABLED 576 try { pProvider = new VBoxCredProvProvider(); } 577 catch (std::bad_alloc &) { AssertFailedReturn(E_OUTOFMEMORY); } 578 #else 579 pProvider = new VBoxCredProvProvider(); 580 AssertReturn(pProvider, E_OUTOFMEMORY); 581 #endif 582 583 HRESULT hr = pProvider->QueryInterface(interfaceID, ppvInterface); 584 pProvider->Release(); 587 585 588 586 return hr;
Note:
See TracChangeset
for help on using the changeset viewer.