VirtualBox

Ignore:
Timestamp:
Jul 24, 2017 1:33:51 PM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
117145
Message:

VBoxCredProv/VBoxCredProvCredential.cpp: Simplified VBoxCredProvCredential::GetStringValue(), updated comments, logging tweaks.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/VBoxCredProv/VBoxCredProvCredential.cpp

    r68074 r68097  
    453453                        pwszField,
    454454#else
    455                         L"XXX" /* Don't show any actual values in release mode. */,
     455                        /* Don't show any passwords in release mode. */
     456                        dwFieldID == VBOXCREDPROV_FIELDID_PASSWORD ? L"XXX" : pwszField,
    456457#endif
    457458                        fNotifyUI, hr);
     
    565566    }
    566567
    567     /* If credentials already were retrieved (also by a former call), don't try to retrieve new ones
    568      * and just report back the already retrieved ones. */
    569568    if (m_fHaveCreds)
    570569    {
    571         VBoxCredProvVerbose(0, "VBoxCredProvCredential::RetrieveCredentials: Credentials already retrieved\n");
     570        VBoxCredProvVerbose(0, "VBoxCredProvCredential::RetrieveCredentials: Setting fields\n");
    572571
    573572        setField(VBOXCREDPROV_FIELDID_USERNAME,   pwszUser,     true /* fNotifyUI */);
     
    881880{
    882881    HRESULT hr;
    883     if (   dwFieldID < VBOXCREDPROV_NUM_FIELDS
    884         && ppwszString)
     882
     883    PWSTR pwszString = NULL;
     884
     885    if (dwFieldID < VBOXCREDPROV_NUM_FIELDS)
    885886    {
    886887        switch (dwFieldID)
    887888        {
    888889            case VBOXCREDPROV_FIELDID_SUBMIT_BUTTON:
     890            {
    889891                /* Fill in standard value to make Winlogon happy. */
    890                 hr = SHStrDupW(L"Submit", ppwszString);
     892                hr = SHStrDupW(L"Submit", &pwszString);
    891893                break;
     894            }
    892895
    893896            default:
     897            {
    894898                if (   m_apwszFields[dwFieldID]
    895899                    && RTUtf16Len(m_apwszFields[dwFieldID]))
    896                     hr = SHStrDupW(m_apwszFields[dwFieldID], ppwszString);
     900                {
     901                    hr = SHStrDupW(m_apwszFields[dwFieldID], &pwszString);
     902                }
    897903                else /* Fill in an empty value. */
    898                     hr = SHStrDupW(L"", ppwszString);
     904                    hr = SHStrDupW(L"", &pwszString);
    899905                break;
     906            }
    900907        }
    901908    }
     
    903910        hr = E_INVALIDARG;
    904911
    905     VBoxCredProvVerbose(0, "VBoxCredProvCredential::GetStringValue: m_fIsSelected=%RTbool, dwFieldID=%ld, ppwszString=%ls, hr=%Rhrc\n",
     912    VBoxCredProvVerbose(0, "VBoxCredProvCredential::GetStringValue: m_fIsSelected=%RTbool, dwFieldID=%ld, pwszString=%ls, hr=%Rhrc\n",
    906913                        m_fIsSelected, dwFieldID,
    907914#ifdef DEBUG
    908                         ppwszString ? *ppwszString : L"<NULL>",
    909 #else /* Never show any (sensitive) data in release mode! */
    910                         L"XXX",
     915                        pwszString ? pwszString : L"<NULL>",
     916#else
     917                        /* Don't show any passwords in release mode. */
     918                        dwFieldID == VBOXCREDPROV_FIELDID_PASSWORD ? L"XXX" : (pwszString ? pwszString : L"<NULL>"),
    911919#endif
    912920                        hr);
     921
     922    if (ppwszString)
     923    {
     924        *ppwszString = pwszString;
     925    }
     926    else if (pwszString)
     927        CoTaskMemFree(pwszString);
     928
    913929    return hr;
    914930}
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette