diff options
Diffstat (limited to 'src/settings.cpp')
| -rw-r--r-- | src/settings.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/settings.cpp b/src/settings.cpp index 80d429c3..eb34ab29 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -181,10 +181,11 @@ QString Settings::obfuscate(const QString &info) QString result; DATA_BLOB input; DATA_BLOB output; - BYTE *pbInput = new unsigned char[info.size() + 1]; - memcpy(pbInput, info.constData(), info.size() + 1); + std::vector<uint8_t> data; + data.reserve(info.size() + 1); + memcpy(data.data(), info.constData(), info.size() + 1); DWORD cbInput = info.size() + 1; - input.pbData = pbInput; + input.pbData = data.data(); input.cbData = cbInput; if (CryptProtectData(&input, NULL, NULL, NULL, NULL, 0, &output)) { @@ -193,8 +194,7 @@ QString Settings::obfuscate(const QString &info) } else { qCritical() << "Failed to encrypt the data!"; } - delete pbInput; - delete output.pbData; + LocalFree(output.pbData); return result; } @@ -204,10 +204,11 @@ QString Settings::deObfuscate(const QString &info) QByteArray realInfo = QByteArray::fromBase64(info.toUtf8()); DATA_BLOB input; DATA_BLOB output; - BYTE *pbInput = new unsigned char[realInfo.size() + 1]; - memcpy(pbInput, realInfo.constData(), realInfo.size() + 1); + std::vector<uint8_t> data; + data.reserve(realInfo.size() + 1); + memcpy(data.data(), realInfo.constData(), realInfo.size() + 1); DWORD cbInput = realInfo.size() + 1; - input.pbData = pbInput; + input.pbData = data.data(); input.cbData = cbInput; if (CryptUnprotectData(&input, NULL, NULL, NULL, NULL, 0, &output)) { @@ -216,8 +217,7 @@ QString Settings::deObfuscate(const QString &info) } else { qCritical() << "Failed to decrypt data!"; } - delete pbInput; - delete output.pbData; + LocalFree(output.pbData); return result; } |
