Paul Vriens paul.vriens.wine@gmail.com writes:
diff --git a/dlls/advapi32/service.c b/dlls/advapi32/service.c index 1ecaf70..7e4ac8e 100644 --- a/dlls/advapi32/service.c +++ b/dlls/advapi32/service.c @@ -2298,7 +2298,7 @@ BOOL WINAPI GetServiceDisplayNameA( SC_HANDLE hSCManager, LPCSTR lpServiceName, if (ret == ERROR_MORE_DATA) { SetLastError(ERROR_INSUFFICIENT_BUFFER);
*lpcchBuffer = size - 1;
*lpcchBuffer = (size - 1) * sizeof(WCHAR);
That's not correct, the A function is not supposed to return WCHARs. What probably happens on Windows is that it calls the W function and doubles the size as an upper bound on the buffer size.