From: Robert Lippmann robert.lippmann.development@gmail.com
--- dlls/powrprof/powersetting.c | 10 +++++----- dlls/powrprof/tests/powersetting.c | 6 ++++-- 2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/dlls/powrprof/powersetting.c b/dlls/powrprof/powersetting.c index 1ffe8c65e3c..6219040b4c8 100644 --- a/dlls/powrprof/powersetting.c +++ b/dlls/powrprof/powersetting.c @@ -95,8 +95,8 @@ DWORD WINAPI PowerGetActiveScheme(HKEY UserRootPowerKey, GUID **polguid) { DWORD ret; HKEY hkey; - char scheme_guid[39]; - WCHAR scheme_guid_w[39]; + char scheme_guid[40]; + WCHAR scheme_guid_w[40]; DWORD scheme_guid_size = sizeof(scheme_guid);
TRACE("called\n"); @@ -106,7 +106,7 @@ DWORD WINAPI PowerGetActiveScheme(HKEY UserRootPowerKey, GUID **polguid) return ret; } /* Windows SDK docs say this can be freed with LocalFree() */ - *polguid = LocalAlloc(LPTR, sizeof(GUID)); + *polguid = LocalAlloc(LMEM_FIXED, sizeof(GUID)); if(*polguid == NULL) { return GetLastError(); @@ -121,7 +121,7 @@ DWORD WINAPI PowerGetActiveScheme(HKEY UserRootPowerKey, GUID **polguid) TRACE("RegQueryValueExA for %s returned %s\n", debugstr_a(active_power_scheme_value), debugstr_a(scheme_guid)); /* Windows SDK docs say this can be freed with LocalFree() */ - *polguid = LocalAlloc(LPTR, sizeof(GUID)); + *polguid = LocalAlloc(LMEM_FIXED, sizeof(GUID)); if(*polguid == NULL) { return GetLastError(); @@ -137,7 +137,7 @@ DWORD WINAPI PowerGetActiveScheme(HKEY UserRootPowerKey, GUID **polguid) /* Add curly braces around string */ scheme_guid_w[0] = L'{'; scheme_guid_w[ret] = L'}'; - scheme_guid[ret + 1] = L'\0'; + scheme_guid_w[ret+1] = L'\0'; TRACE("Converting GUID %s to CLSID\n", debugstr_w(scheme_guid_w)); ret = CLSIDFromString(scheme_guid_w, *polguid); if(ret != S_OK) diff --git a/dlls/powrprof/tests/powersetting.c b/dlls/powrprof/tests/powersetting.c index c3c1da6f292..b1067d47c27 100644 --- a/dlls/powrprof/tests/powersetting.c +++ b/dlls/powrprof/tests/powersetting.c @@ -24,7 +24,6 @@ #include "winreg.h" #include "objbase.h" #include "powersetting.h" - #include "wine/test.h"
START_TEST(powersetting) @@ -61,7 +60,10 @@ ret = PowerGetActiveScheme(tmp_key[i], &new_powerprof); ok(ret == ERROR_SUCCESS, "GetActivePowerScheme failed with HKEY %p\n", tmp_key[i]); - LocalFree(new_powerprof); + if(ret == ERROR_SUCCESS) + { + LocalFree(new_powerprof); + } }
/* Test PowerSetActiveScheme with null */