Win: Revise string zero termination
Signed-off-by: Simon Rozman <simon@rozman.si>
This commit is contained in:
parent
9f5a68e789
commit
19e2dbbe72
@ -437,7 +437,7 @@ static LSTATUS RegQueryStringValue(_In_ HKEY hReg, _In_z_ LPCSTR pszName, _Out_
|
|||||||
} else if (lResult == ERROR_MORE_DATA) {
|
} else if (lResult == ERROR_MORE_DATA) {
|
||||||
if (dwType == REG_SZ || dwType == REG_MULTI_SZ) {
|
if (dwType == REG_SZ || dwType == REG_MULTI_SZ) {
|
||||||
// The value is REG_SZ or REG_MULTI_SZ. Read it now.
|
// The value is REG_SZ or REG_MULTI_SZ. Read it now.
|
||||||
sValue.resize(dwSize / sizeof(CHAR) - 1);
|
sValue.resize(dwSize / sizeof(CHAR));
|
||||||
if ((lResult = ::RegQueryValueExA(hReg, pszName, NULL, NULL, reinterpret_cast<LPBYTE>(&sValue[0]), &dwSize)) == ERROR_SUCCESS) {
|
if ((lResult = ::RegQueryValueExA(hReg, pszName, NULL, NULL, reinterpret_cast<LPBYTE>(&sValue[0]), &dwSize)) == ERROR_SUCCESS) {
|
||||||
dwSize /= sizeof(CHAR);
|
dwSize /= sizeof(CHAR);
|
||||||
sValue.resize(dwSize && sValue[dwSize - 1] == 0 ? dwSize - 1 : dwSize);
|
sValue.resize(dwSize && sValue[dwSize - 1] == 0 ? dwSize - 1 : dwSize);
|
||||||
@ -503,7 +503,7 @@ static LSTATUS RegQueryStringValue(_In_ HKEY hReg, _In_z_ LPCWSTR pszName, _Out_
|
|||||||
} else if (lResult == ERROR_MORE_DATA) {
|
} else if (lResult == ERROR_MORE_DATA) {
|
||||||
if (dwType == REG_SZ || dwType == REG_MULTI_SZ) {
|
if (dwType == REG_SZ || dwType == REG_MULTI_SZ) {
|
||||||
// The value is REG_SZ or REG_MULTI_SZ. Read it now.
|
// The value is REG_SZ or REG_MULTI_SZ. Read it now.
|
||||||
sValue.resize(dwSize / sizeof(WCHAR) - 1);
|
sValue.resize(dwSize / sizeof(WCHAR));
|
||||||
if ((lResult = ::RegQueryValueExW(hReg, pszName, NULL, NULL, reinterpret_cast<LPBYTE>(&sValue[0]), &dwSize)) == ERROR_SUCCESS) {
|
if ((lResult = ::RegQueryValueExW(hReg, pszName, NULL, NULL, reinterpret_cast<LPBYTE>(&sValue[0]), &dwSize)) == ERROR_SUCCESS) {
|
||||||
dwSize /= sizeof(WCHAR);
|
dwSize /= sizeof(WCHAR);
|
||||||
sValue.resize(dwSize && sValue[dwSize - 1] == 0 ? dwSize - 1 : dwSize);
|
sValue.resize(dwSize && sValue[dwSize - 1] == 0 ? dwSize - 1 : dwSize);
|
||||||
@ -682,7 +682,7 @@ static _Success_(return > 0) int NormalizeString(_In_ NORM_FORM NormForm, _In_ c
|
|||||||
for (int i = 10; i--;) {
|
for (int i = 10; i--;) {
|
||||||
// Allocate buffer. Then convert again.
|
// Allocate buffer. Then convert again.
|
||||||
cch = -cch;
|
cch = -cch;
|
||||||
sDstString.resize(cch - 1);
|
sDstString.resize(cch);
|
||||||
cch = ::NormalizeString(NormForm, sSrcString.c_str(), (int)sSrcString.length(), &sDstString[0], cch);
|
cch = ::NormalizeString(NormForm, sSrcString.c_str(), (int)sSrcString.length(), &sDstString[0], cch);
|
||||||
if (cch > 0)
|
if (cch > 0)
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user