diff options
| author | Silarn <jrim@rimpo.org> | 2019-02-06 00:56:48 -0600 |
|---|---|---|
| committer | Silarn <jrim@rimpo.org> | 2019-02-18 21:31:20 -0600 |
| commit | 3f86a94ff73914460db72c1f20eca075de8caea6 (patch) | |
| tree | 21f7a7c4598301f236971d21f134c5185d194d6e /src/settings.cpp | |
| parent | 8bc9db23d98ae454899791af9e0fbc0bab4d0b15 (diff) | |
Freeing the credential object when there's no result causes overruns
Diffstat (limited to 'src/settings.cpp')
| -rw-r--r-- | src/settings.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/settings.cpp b/src/settings.cpp index 6be5489d..64a39e12 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -216,6 +216,7 @@ QString Settings::deObfuscate(const QString key) if (CredReadW(keyData, 1, 0, &creds)) { wchar_t *charData = (wchar_t *)creds->CredentialBlob; result = QString::fromWCharArray(charData, creds->CredentialBlobSize / sizeof(wchar_t)); + CredFree(creds); } else { if (GetLastError() != ERROR_NOT_FOUND) { wchar_t buffer[256]; @@ -225,7 +226,6 @@ QString Settings::deObfuscate(const QString key) qCritical() << "Retrieving encrypted data failed:" << buffer; } } - CredFree(creds); delete[] keyData; return result; } |
