diff --git a/src/ku/library.h b/src/ku/library.h index 1a95a94d..91e8dcf2 100644 --- a/src/ku/library.h +++ b/src/ku/library.h @@ -170,7 +170,7 @@ static inline int FspKuWideCharToMultiByte( NTSTATUS Result; ULONG ByteCount; if (-1 == cchWideChar) - cchWideChar = (int)wcslen(lpWideCharStr); + cchWideChar = (int)wcslen(lpWideCharStr) + 1; Result = RtlUnicodeToUTF8N( lpMultiByteStr, cbMultiByte, &ByteCount, lpWideCharStr, cchWideChar * sizeof(WCHAR)); @@ -195,7 +195,7 @@ static inline int FspKuMultiByteToWideChar( NTSTATUS Result; ULONG ByteCount; if (-1 == cbMultiByte) - cbMultiByte = (int)strlen(lpMultiByteStr); + cbMultiByte = (int)strlen(lpMultiByteStr) + 1; Result = RtlUTF8ToUnicodeN( lpWideCharStr, cchWideChar * sizeof(WCHAR), &ByteCount, lpMultiByteStr, cbMultiByte); diff --git a/src/ku/posix.c b/src/ku/posix.c index 6322ff42..f3b75233 100644 --- a/src/ku/posix.c +++ b/src/ku/posix.c @@ -200,22 +200,22 @@ ULONG NTAPI FspPosixInitialize( ULONG Length; NTSTATUS Result; - RtlInitUnicodeString(&Path, L"\\Machine\\SECURITY\\Policy\\PolAcDmS"); + RtlInitUnicodeString(&Path, L"\\Registry\\Machine\\SECURITY\\Policy\\PolAcDmS"); RtlZeroMemory(&Name, sizeof Name); Length = sizeof Value; Result = FspRegistryGetValue(&Path, &Name, &Value.V, &Length); - if (STATUS_SUCCESS == Result /*!NT_SUCCESS*/ && REG_NONE == Value.V.Type && + if (NT_SUCCESS(Result) && REG_NONE == Value.V.Type && sizeof(SID) <= Value.V.DataLength && RtlValidSid((PSID)&Value.V.Data)) { RtlCopyMemory(&FspAccountDomainSidBuf.V, &Value.V.Data, Value.V.DataLength); FspAccountDomainSid = &FspAccountDomainSidBuf.V; } - RtlInitUnicodeString(&Path, L"\\Machine\\SECURITY\\Policy\\PolPrDmS"); + RtlInitUnicodeString(&Path, L"\\Registry\\Machine\\SECURITY\\Policy\\PolPrDmS"); RtlZeroMemory(&Name, sizeof Name); Length = sizeof Value; Result = FspRegistryGetValue(&Path, &Name, &Value.V, &Length); - if (STATUS_SUCCESS == Result /*!NT_SUCCESS*/ && REG_NONE == Value.V.Type && + if (NT_SUCCESS(Result) && REG_NONE == Value.V.Type && sizeof(SID) <= Value.V.DataLength && RtlValidSid((PSID)&Value.V.Data)) { RtlCopyMemory(&FspPrimaryDomainSidBuf.V, &Value.V.Data, Value.V.DataLength);