1
0
Fork 0
mirror of synced 2025-03-07 03:53:26 +01:00

advapi32/tests: Use CRT allocation functions.

This commit is contained in:
Alex Henrie 2024-02-17 22:16:16 -07:00 committed by Alexandre Julliard
parent 74bf784b29
commit ce6e298a68
6 changed files with 243 additions and 243 deletions

View file

@ -1260,10 +1260,10 @@ static void test_container_sd(void)
ok(err == ERROR_INSUFFICIENT_BUFFER || broken(err == ERROR_INVALID_PARAMETER), "got %lu\n", err);
ok(len, "expected len > 0\n");
sd = HeapAlloc(GetProcessHeap(), 0, len);
sd = malloc(len);
ret = CryptGetProvParam(prov, PP_KEYSET_SEC_DESCR, (BYTE *)sd, &len, OWNER_SECURITY_INFORMATION);
ok(ret, "got %lu\n", GetLastError());
HeapFree(GetProcessHeap(), 0, sd);
free(sd);
ret = CryptReleaseContext(prov, 0);
ok(ret, "got %lu\n", GetLastError());

View file

@ -445,14 +445,14 @@ static void test_read(void)
todo_wine
ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %ld\n", GetLastError());
buf = HeapAlloc(GetProcessHeap(), 0, sizeof(EVENTLOGRECORD));
buf = malloc(sizeof(EVENTLOGRECORD));
SetLastError(0xdeadbeef);
ret = ReadEventLogA(NULL, EVENTLOG_SEQUENTIAL_READ | EVENTLOG_FORWARDS_READ,
0, buf, sizeof(EVENTLOGRECORD), &read, &needed);
ok(!ret, "Expected failure\n");
todo_wine
ok(GetLastError() == ERROR_INVALID_HANDLE, "Expected ERROR_INVALID_HANDLE, got %ld\n", GetLastError());
HeapFree(GetProcessHeap(), 0, buf);
free(buf);
handle = OpenEventLogA(NULL, "Application");
if (!handle && (GetLastError() == ERROR_ACCESS_DENIED || GetLastError() == RPC_S_SERVER_UNAVAILABLE))
@ -463,7 +463,7 @@ static void test_read(void)
ok(handle != NULL, "OpenEventLogA(Application) failed : %ld\n", GetLastError());
/* Show that we need the proper dwFlags with a (for the rest) proper call */
buf = HeapAlloc(GetProcessHeap(), 0, sizeof(EVENTLOGRECORD));
buf = malloc(sizeof(EVENTLOGRECORD));
SetLastError(0xdeadbeef);
ret = ReadEventLogA(handle, 0, 0, buf, sizeof(EVENTLOGRECORD), &read, &needed);
@ -504,7 +504,7 @@ static void test_read(void)
todo_wine
ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %ld\n", GetLastError());
HeapFree(GetProcessHeap(), 0, buf);
free(buf);
/* First check if there are any records (in practice only on Wine: FIXME) */
count = 0;
@ -517,7 +517,7 @@ static void test_read(void)
}
/* Get the buffer size for the first record */
buf = HeapAlloc(GetProcessHeap(), 0, sizeof(EVENTLOGRECORD));
buf = malloc(sizeof(EVENTLOGRECORD));
read = needed = 0xdeadbeef;
SetLastError(0xdeadbeef);
ret = ReadEventLogA(handle, EVENTLOG_SEQUENTIAL_READ | EVENTLOG_FORWARDS_READ,
@ -529,7 +529,7 @@ static void test_read(void)
/* Read the first record */
toread = needed;
buf = HeapReAlloc(GetProcessHeap(), 0, buf, toread);
buf = realloc(buf, toread);
read = needed = 0xdeadbeef;
SetLastError(0xdeadbeef);
ret = ReadEventLogA(handle, EVENTLOG_SEQUENTIAL_READ | EVENTLOG_FORWARDS_READ, 0, buf, toread, &read, &needed);
@ -538,7 +538,7 @@ static void test_read(void)
broken(read < toread), /* NT4 wants a buffer size way bigger than just 1 record */
"Expected the requested size to be read\n");
ok(needed == 0, "Expected no extra bytes to be read\n");
HeapFree(GetProcessHeap(), 0, buf);
free(buf);
CloseEventLog(handle);
}
@ -785,7 +785,7 @@ static void test_readwrite(void)
if (pCreateWellKnownSid)
{
sidsize = SECURITY_MAX_SID_SIZE;
user = HeapAlloc(GetProcessHeap(), 0, sidsize);
user = malloc(sidsize);
SetLastError(0xdeadbeef);
pCreateWellKnownSid(WinInteractiveSid, NULL, user, &sidsize);
sidavailable = TRUE;
@ -846,12 +846,12 @@ static void test_readwrite(void)
ok(ret, "Expected success : %ld\n", GetLastError());
/* Needed to catch earlier Vista (with no ServicePack for example) */
buf = HeapAlloc(GetProcessHeap(), 0, sizeof(EVENTLOGRECORD));
buf = malloc(sizeof(EVENTLOGRECORD));
if (!(ret = ReadEventLogA(handle, EVENTLOG_SEQUENTIAL_READ | EVENTLOG_FORWARDS_READ,
0, buf, sizeof(EVENTLOGRECORD), &read, &needed)) &&
GetLastError() == ERROR_INSUFFICIENT_BUFFER)
{
buf = HeapReAlloc(GetProcessHeap(), 0, buf, needed);
buf = realloc(buf, needed);
ret = ReadEventLogA(handle, EVENTLOG_SEQUENTIAL_READ | EVENTLOG_FORWARDS_READ,
0, buf, needed, &read, &needed);
}
@ -865,7 +865,7 @@ static void test_readwrite(void)
if (record->EventType == EVENTLOG_SUCCESS)
on_vista = TRUE;
}
HeapFree(GetProcessHeap(), 0, buf);
free(buf);
}
/* This will clear the eventlog. The record numbering for new
@ -949,13 +949,13 @@ static void test_readwrite(void)
size = 0;
SetLastError(0xdeadbeef);
pGetComputerNameExA(ComputerNameDnsFullyQualified, NULL, &size);
localcomputer = HeapAlloc(GetProcessHeap(), 0, size);
localcomputer = malloc(size);
pGetComputerNameExA(ComputerNameDnsFullyQualified, localcomputer, &size);
}
else
{
size = MAX_COMPUTERNAME_LENGTH + 1;
localcomputer = HeapAlloc(GetProcessHeap(), 0, size);
localcomputer = malloc(size);
GetComputerNameA(localcomputer, &size);
}
@ -964,7 +964,7 @@ static void test_readwrite(void)
ok(handle != NULL, "OpenEventLogA(%s) failed : %ld\n", eventlogname, GetLastError());
i = 0;
size = sizeof(EVENTLOGRECORD) + 128;
buf = HeapAlloc(GetProcessHeap(), 0, size);
buf = malloc(size);
for (;;)
{
DWORD read, needed;
@ -989,9 +989,9 @@ static void test_readwrite(void)
if (needed > size)
{
HeapFree(GetProcessHeap(), 0, buf);
free(buf);
size = needed;
buf = HeapAlloc(GetProcessHeap(), 0, size);
buf = malloc(size);
}
ret = ReadEventLogA(handle, EVENTLOG_SEQUENTIAL_READ | EVENTLOG_FORWARDS_READ,
0, buf, needed, &read, &needed);
@ -1069,7 +1069,7 @@ static void test_readwrite(void)
winetest_pop_context();
i++;
}
HeapFree(GetProcessHeap(), 0, buf);
free(buf);
CloseEventLog(handle);
/* Test clearing a real eventlog */
@ -1088,8 +1088,8 @@ static void test_readwrite(void)
CloseEventLog(handle);
cleanup:
HeapFree(GetProcessHeap(), 0, localcomputer);
HeapFree(GetProcessHeap(), 0, user);
free(localcomputer);
free(user);
}
/* Before Vista:
@ -1240,7 +1240,7 @@ static void test_start_trace(void)
LONG ret;
buffersize = sizeof(EVENT_TRACE_PROPERTIES) + sizeof(sessionname) + sizeof(filepath);
properties = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, buffersize);
properties = calloc(1, buffersize);
properties->Wnode.BufferSize = buffersize;
properties->Wnode.Flags = WNODE_FLAG_TRACED_GUID;
properties->LogFileMode = EVENT_TRACE_FILE_MODE_NONE;
@ -1317,7 +1317,7 @@ static void test_start_trace(void)
/* clean up */
ControlTraceA(handle, sessionname, properties, EVENT_TRACE_CONTROL_STOP);
done:
HeapFree(GetProcessHeap(), 0, properties);
free(properties);
DeleteFileA(filepath);
}

View file

@ -243,15 +243,15 @@ static void test_LsaLookupNames2(void)
return;
}
name[0].Buffer = HeapAlloc(GetProcessHeap(), 0, sizeof(n1));
name[0].Buffer = malloc(sizeof(n1));
name[0].Length = name[0].MaximumLength = sizeof(n1);
memcpy(name[0].Buffer, n1, sizeof(n1));
name[1].Buffer = HeapAlloc(GetProcessHeap(), 0, sizeof(n1));
name[1].Buffer = malloc(sizeof(n1));
name[1].Length = name[1].MaximumLength = sizeof(n1) - sizeof(WCHAR);
memcpy(name[1].Buffer, n1, sizeof(n1) - sizeof(WCHAR));
name[2].Buffer = HeapAlloc(GetProcessHeap(), 0, sizeof(n2));
name[2].Buffer = malloc(sizeof(n2));
name[2].Length = name[2].MaximumLength = sizeof(n2);
memcpy(name[2].Buffer, n2, sizeof(n2));
@ -307,9 +307,9 @@ static void test_LsaLookupNames2(void)
LsaFreeMemory(sids);
LsaFreeMemory(domains);
HeapFree(GetProcessHeap(), 0, name[0].Buffer);
HeapFree(GetProcessHeap(), 0, name[1].Buffer);
HeapFree(GetProcessHeap(), 0, name[2].Buffer);
free(name[0].Buffer);
free(name[1].Buffer);
free(name[2].Buffer);
status = LsaClose(handle);
ok(status == STATUS_SUCCESS, "LsaClose() failed, returned 0x%08lx\n", status);

View file

@ -195,7 +195,7 @@ static void _test_hkey_main_Value_A(int line, LPCSTR name, LPCSTR string,
lok(type == REG_SZ, "RegQueryValueExA/1 returned type %ld\n", type);
lok(cbData == full_byte_len, "cbData=%ld instead of %ld or %ld\n", cbData, full_byte_len, str_byte_len);
value = HeapAlloc(GetProcessHeap(), 0, cbData+1);
value = malloc(cbData+1);
memset(value, 0xbd, cbData+1);
type=0xdeadbeef;
ret = RegQueryValueExA(hkey_main, name, NULL, &type, value, &cbData);
@ -213,7 +213,7 @@ static void _test_hkey_main_Value_A(int line, LPCSTR name, LPCSTR string,
debugstr_an(string, full_byte_len), full_byte_len);
lok(*(value+cbData) == 0xbd, "RegQueryValueExA/2 overflowed at offset %lu: %02x != bd\n", cbData, *(value+cbData));
}
HeapFree(GetProcessHeap(), 0, value);
free(value);
}
#define test_hkey_main_Value_W(name, string, full_byte_len) _test_hkey_main_Value_W(__LINE__, name, string, full_byte_len)
@ -243,7 +243,7 @@ static void _test_hkey_main_Value_W(int line, LPCWSTR name, LPCWSTR string,
"cbData=%ld instead of %ld\n", cbData, full_byte_len);
/* Give enough space to overflow by one WCHAR */
value = HeapAlloc(GetProcessHeap(), 0, cbData+2);
value = malloc(cbData+2);
memset(value, 0xbd, cbData+2);
type=0xdeadbeef;
ret = RegQueryValueExW(hkey_main, name, NULL, &type, value, &cbData);
@ -258,7 +258,7 @@ static void _test_hkey_main_Value_W(int line, LPCWSTR name, LPCWSTR string,
/* This implies that when cbData == 0, RegQueryValueExW() should not modify the buffer */
lok(*(value+cbData) == 0xbd, "RegQueryValueExW/2 overflowed at %lu: %02x != bd\n", cbData, *(value+cbData));
lok(*(value+cbData+1) == 0xbd, "RegQueryValueExW/2 overflowed at %lu+1: %02x != bd\n", cbData, *(value+cbData+1));
HeapFree(GetProcessHeap(), 0, value);
free(value);
}
static void test_set_value(void)
@ -1218,7 +1218,7 @@ static void test_reg_open_key(void)
ok(ret == ERROR_SUCCESS,
"Expected SetEntriesInAclA to return ERROR_SUCCESS, got %lu, last error %lu\n", ret, GetLastError());
sd = HeapAlloc(GetProcessHeap(), 0, SECURITY_DESCRIPTOR_MIN_LENGTH);
sd = malloc(SECURITY_DESCRIPTOR_MIN_LENGTH);
bRet = InitializeSecurityDescriptor(sd, SECURITY_DESCRIPTOR_REVISION);
ok(bRet == TRUE,
"Expected InitializeSecurityDescriptor to return TRUE, got %d, last error %lu\n", bRet, GetLastError());
@ -1256,7 +1256,7 @@ static void test_reg_open_key(void)
RegCloseKey(hkResult);
}
HeapFree(GetProcessHeap(), 0, sd);
free(sd);
LocalFree(key_acl);
FreeSid(world_sid);
RegDeleteKeyA(hkRoot64, "");
@ -1380,7 +1380,7 @@ static void test_reg_create_key(void)
ok(dwRet == ERROR_SUCCESS,
"Expected SetEntriesInAclA to return ERROR_SUCCESS, got %lu, last error %lu\n", dwRet, GetLastError());
sd = HeapAlloc(GetProcessHeap(), 0, SECURITY_DESCRIPTOR_MIN_LENGTH);
sd = malloc(SECURITY_DESCRIPTOR_MIN_LENGTH);
bRet = InitializeSecurityDescriptor(sd, SECURITY_DESCRIPTOR_REVISION);
ok(bRet == TRUE,
"Expected InitializeSecurityDescriptor to return TRUE, got %d, last error %lu\n", bRet, GetLastError());
@ -1418,7 +1418,7 @@ static void test_reg_create_key(void)
RegCloseKey(hkey1);
}
HeapFree(GetProcessHeap(), 0, sd);
free(sd);
LocalFree(key_acl);
FreeSid(world_sid);
RegDeleteKeyA(hkRoot64, "");
@ -2425,7 +2425,7 @@ static void test_symlinks(void)
pRtlFormatCurrentUserKeyPath( &target_str );
target_len = target_str.Length + sizeof(targetW);
target = HeapAlloc( GetProcessHeap(), 0, target_len );
target = malloc( target_len );
memcpy( target, target_str.Buffer, target_str.Length );
memcpy( target + target_str.Length/sizeof(WCHAR), targetW, sizeof(targetW) );
@ -2530,7 +2530,7 @@ static void test_symlinks(void)
ok( !status, "NtDeleteKey failed: 0x%08lx\n", status );
RegCloseKey( link );
HeapFree( GetProcessHeap(), 0, target );
free( target );
pRtlFreeUnicodeString( &target_str );
}

File diff suppressed because it is too large Load diff

View file

@ -1000,14 +1000,14 @@ static void test_query_svc(void)
}
/* Pass a correct buffer and buffersize but a NULL handle */
statusproc = HeapAlloc(GetProcessHeap(), 0, sizeof(SERVICE_STATUS_PROCESS));
statusproc = malloc(sizeof(SERVICE_STATUS_PROCESS));
bufsize = needed;
SetLastError(0xdeadbeef);
ret = pQueryServiceStatusEx(NULL, SC_STATUS_PROCESS_INFO, (BYTE*)statusproc, bufsize, &needed);
ok(!ret, "Expected failure\n");
ok(GetLastError() == ERROR_INVALID_HANDLE,
"Expected ERROR_INVALID_HANDLE, got %ld\n", GetLastError());
HeapFree(GetProcessHeap(), 0, statusproc);
free(statusproc);
/* Correct handle and info level */
SetLastError(0xdeadbeef);
@ -1023,21 +1023,21 @@ static void test_query_svc(void)
}
/* All parameters are OK but we don't have enough rights */
statusproc = HeapAlloc(GetProcessHeap(), 0, sizeof(SERVICE_STATUS_PROCESS));
statusproc = malloc(sizeof(SERVICE_STATUS_PROCESS));
bufsize = sizeof(SERVICE_STATUS_PROCESS);
SetLastError(0xdeadbeef);
ret = pQueryServiceStatusEx(svc_handle, SC_STATUS_PROCESS_INFO, (BYTE*)statusproc, bufsize, &needed);
ok(!ret, "Expected failure\n");
ok(GetLastError() == ERROR_ACCESS_DENIED,
"Expected ERROR_ACCESS_DENIED, got %ld\n", GetLastError());
HeapFree(GetProcessHeap(), 0, statusproc);
free(statusproc);
/* Open the service with just enough rights. */
CloseServiceHandle(svc_handle);
svc_handle = OpenServiceA(scm_handle, spooler, SERVICE_QUERY_STATUS);
/* Everything should be fine now. */
statusproc = HeapAlloc(GetProcessHeap(), 0, sizeof(SERVICE_STATUS_PROCESS));
statusproc = malloc(sizeof(SERVICE_STATUS_PROCESS));
bufsize = sizeof(SERVICE_STATUS_PROCESS);
SetLastError(0xdeadbeef);
ret = pQueryServiceStatusEx(svc_handle, SC_STATUS_PROCESS_INFO, (BYTE*)statusproc, bufsize, &needed);
@ -1056,7 +1056,7 @@ static void test_query_svc(void)
ok(broken(GetLastError() == ERROR_INVALID_PARAMETER) /* NT4 */ ||
GetLastError() == ERROR_INVALID_ADDRESS, "got %ld\n", GetLastError());
HeapFree(GetProcessHeap(), 0, statusproc);
free(statusproc);
CloseServiceHandle(svc_handle);
CloseServiceHandle(scm_handle);
@ -1274,14 +1274,14 @@ static BOOL test_enum_svc(int attempt)
tempneeded = needed;
/* Allocate the correct needed bytes */
services = HeapAlloc(GetProcessHeap(), 0, needed);
services = malloc(needed);
bufsize = needed;
needed = 0xdeadbeef;
returned = 0xdeadbeef;
SetLastError(0xdeadbeef);
ret = EnumServicesStatusW(scm_handle, SERVICE_WIN32, SERVICE_STATE_ALL,
services, bufsize, &needed, &returned, NULL);
HeapFree(GetProcessHeap(), 0, services);
free(services);
if (!ret && GetLastError() == ERROR_MORE_DATA && attempt)
goto retry; /* service start race condition */
ok(ret, "Expected success, got error %lu\n", GetLastError());
@ -1291,14 +1291,14 @@ static BOOL test_enum_svc(int attempt)
/* Store the number of returned services */
tempreturned = returned;
servicesA = HeapAlloc(GetProcessHeap(), 0, neededA);
servicesA = malloc(neededA);
bufsize = neededA;
neededA = 0xdeadbeef;
returnedA = 0xdeadbeef;
SetLastError(0xdeadbeef);
ret = EnumServicesStatusA(scm_handle, SERVICE_WIN32, SERVICE_STATE_ALL,
servicesA, bufsize, &neededA, &returnedA, NULL);
HeapFree(GetProcessHeap(), 0, servicesA);
free(servicesA);
if (!ret && GetLastError() == ERROR_MORE_DATA && attempt)
goto retry; /* service start race condition */
if (!ret && GetLastError() == ERROR_NOT_ENOUGH_MEMORY && GetACP() == CP_UTF8)
@ -1314,7 +1314,7 @@ static BOOL test_enum_svc(int attempt)
* More than one service will be missing because of the space needed for
* the strings.
*/
services = HeapAlloc(GetProcessHeap(), 0, tempneeded);
services = malloc(tempneeded);
bufsize = (tempreturned - 1) * sizeof(ENUM_SERVICE_STATUSW);
needed = 0xdeadbeef;
returned = 0xdeadbeef;
@ -1323,7 +1323,7 @@ static BOOL test_enum_svc(int attempt)
services, bufsize, &needed, &returned, NULL);
if (ret && needed == 0 && attempt)
{
HeapFree(GetProcessHeap(), 0, services);
free(services);
goto retry; /* service stop race condition */
}
ok(!ret, "Expected failure\n");
@ -1346,7 +1346,7 @@ static BOOL test_enum_svc(int attempt)
services, bufsize, &needed, &returned, &resume);
if (ret && needed == 0 && attempt)
{
HeapFree(GetProcessHeap(), 0, services);
free(services);
goto retry; /* service stop race condition */
}
ok(!ret, "Expected failure\n");
@ -1365,7 +1365,7 @@ static BOOL test_enum_svc(int attempt)
SetLastError(0xdeadbeef);
ret = EnumServicesStatusW(scm_handle, SERVICE_WIN32, SERVICE_STATE_ALL,
services, bufsize, &needed, &returned, &resume);
HeapFree(GetProcessHeap(), 0, services);
free(services);
if (!ret && GetLastError() == ERROR_MORE_DATA && attempt)
goto retry; /* service start race condition */
ok(ret, "Expected success, got error %lu\n", GetLastError());
@ -1390,10 +1390,10 @@ static BOOL test_enum_svc(int attempt)
/* Get the number of active win32 services */
EnumServicesStatusW(scm_handle, SERVICE_WIN32, SERVICE_ACTIVE, NULL, 0,
&needed, &returned, NULL);
services = HeapAlloc(GetProcessHeap(), 0, needed);
services = malloc(needed);
ret = EnumServicesStatusW(scm_handle, SERVICE_WIN32, SERVICE_ACTIVE,
services, needed, &needed, &returned, NULL);
HeapFree(GetProcessHeap(), 0, services);
free(services);
if (!ret && GetLastError() == ERROR_MORE_DATA && attempt)
goto retry; /* service start race condition */
@ -1402,10 +1402,10 @@ static BOOL test_enum_svc(int attempt)
/* Get the number of inactive win32 services */
EnumServicesStatusW(scm_handle, SERVICE_WIN32, SERVICE_INACTIVE, NULL, 0,
&needed, &returned, NULL);
services = HeapAlloc(GetProcessHeap(), 0, needed);
services = malloc(needed);
ret = EnumServicesStatusW(scm_handle, SERVICE_WIN32, SERVICE_INACTIVE,
services, needed, &needed, &returned, NULL);
HeapFree(GetProcessHeap(), 0, services);
free(services);
if (!ret && GetLastError() == ERROR_MORE_DATA && attempt)
goto retry; /* service start race condition */
@ -1414,10 +1414,10 @@ static BOOL test_enum_svc(int attempt)
/* Get the number of win32 services */
EnumServicesStatusW(scm_handle, SERVICE_WIN32, SERVICE_STATE_ALL, NULL, 0,
&needed, &returned, NULL);
services = HeapAlloc(GetProcessHeap(), 0, needed);
services = malloc(needed);
ret = EnumServicesStatusW(scm_handle, SERVICE_WIN32, SERVICE_STATE_ALL,
services, needed, &needed, &returned, NULL);
HeapFree(GetProcessHeap(), 0, services);
free(services);
if (!ret && GetLastError() == ERROR_MORE_DATA && attempt)
goto retry; /* service start race condition */
@ -1435,7 +1435,7 @@ static BOOL test_enum_svc(int attempt)
*/
EnumServicesStatusW(scm_handle, SERVICE_DRIVER | SERVICE_WIN32, SERVICE_STATE_ALL,
NULL, 0, &needed, &returned, NULL);
services = HeapAlloc(GetProcessHeap(), 0, needed);
services = malloc(needed);
ret = EnumServicesStatusW(scm_handle, SERVICE_DRIVER | SERVICE_WIN32, SERVICE_STATE_ALL,
services, needed, &needed, &returned, NULL);
if (!ret && GetLastError() == ERROR_MORE_DATA && attempt)
@ -1482,7 +1482,7 @@ static BOOL test_enum_svc(int attempt)
}
}
}
HeapFree(GetProcessHeap(), 0, services);
free(services);
if ((servicecountactive || servicecountinactive) && attempt)
goto retry; /* service start|stop race condition */
@ -1695,11 +1695,11 @@ static BOOL test_enum_svc_ex(int attempt)
/* Show the Ex call returns the same service count as the regular enum */
EnumServicesStatusW(scm_handle, SERVICE_WIN32, SERVICE_STATE_ALL,
NULL, 0, &needed, &returned, NULL);
services = HeapAlloc(GetProcessHeap(), 0, needed);
services = malloc(needed);
returned = 0xdeadbeef;
ret = EnumServicesStatusW(scm_handle, SERVICE_WIN32, SERVICE_STATE_ALL,
services, needed, &needed, &returned, NULL);
HeapFree(GetProcessHeap(), 0, services);
free(services);
if (!ret && GetLastError() == ERROR_MORE_DATA && attempt)
goto retry; /* service start race condition */
ok(ret, "Expected success, got error %lu\n", GetLastError());
@ -1710,14 +1710,14 @@ static BOOL test_enum_svc_ex(int attempt)
tempreturned = returned;
/* Allocate the correct needed bytes */
exservices = HeapAlloc(GetProcessHeap(), 0, tempneeded);
exservices = malloc(tempneeded);
bufsize = tempneeded;
needed = 0xdeadbeef;
returned = 0xdeadbeef;
SetLastError(0xdeadbeef);
ret = pEnumServicesStatusExW(scm_handle, 0, SERVICE_WIN32, SERVICE_STATE_ALL,
(BYTE*)exservices, bufsize, &needed, &returned, NULL, NULL);
HeapFree(GetProcessHeap(), 0, exservices);
free(exservices);
if (!ret && GetLastError() == ERROR_MORE_DATA && attempt)
goto retry; /* service start race condition */
ok(ret, "Expected success, got error %lu\n", GetLastError());
@ -1731,7 +1731,7 @@ static BOOL test_enum_svc_ex(int attempt)
* More than one service will be missing because of the space needed for
* the strings.
*/
exservices = HeapAlloc(GetProcessHeap(), 0, tempneeded);
exservices = malloc(tempneeded);
bufsize = (tempreturned - 1) * sizeof(ENUM_SERVICE_STATUSW);
needed = 0xdeadbeef;
returned = 0xdeadbeef;
@ -1740,7 +1740,7 @@ static BOOL test_enum_svc_ex(int attempt)
(BYTE*)exservices, bufsize, &needed, &returned, NULL, NULL);
if (ret && needed == 0 && attempt)
{
HeapFree(GetProcessHeap(), 0, exservices);
free(exservices);
goto retry; /* service stop race condition */
}
ok(!ret, "Expected failure\n");
@ -1763,7 +1763,7 @@ static BOOL test_enum_svc_ex(int attempt)
(BYTE*)exservices, bufsize, &needed, &returned, &resume, NULL);
if (ret && needed == 0 && attempt)
{
HeapFree(GetProcessHeap(), 0, exservices);
free(exservices);
goto retry; /* service stop race condition */
}
ok(!ret, "Expected failure\n");
@ -1782,7 +1782,7 @@ static BOOL test_enum_svc_ex(int attempt)
SetLastError(0xdeadbeef);
ret = pEnumServicesStatusExW(scm_handle, 0, SERVICE_WIN32, SERVICE_STATE_ALL,
(BYTE*)exservices, bufsize, &needed, &returned, &resume, NULL);
HeapFree(GetProcessHeap(), 0, exservices);
free(exservices);
if (!ret && GetLastError() == ERROR_MORE_DATA && attempt)
goto retry; /* service start race condition */
ok(ret, "Expected success, got error %lu\n", GetLastError());
@ -1795,10 +1795,10 @@ static BOOL test_enum_svc_ex(int attempt)
/* Get the number of active win32 services */
pEnumServicesStatusExW(scm_handle, 0, SERVICE_WIN32, SERVICE_ACTIVE,
NULL, 0, &needed, &returned, NULL, NULL);
exservices = HeapAlloc(GetProcessHeap(), 0, needed);
exservices = malloc(needed);
ret = pEnumServicesStatusExW(scm_handle, 0, SERVICE_WIN32, SERVICE_ACTIVE,
(BYTE*)exservices, needed, &needed, &returned, NULL, NULL);
HeapFree(GetProcessHeap(), 0, exservices);
free(exservices);
if (!ret && GetLastError() == ERROR_MORE_DATA && attempt)
goto retry; /* service start race condition */
@ -1807,10 +1807,10 @@ static BOOL test_enum_svc_ex(int attempt)
/* Get the number of inactive win32 services */
pEnumServicesStatusExW(scm_handle, 0, SERVICE_WIN32, SERVICE_INACTIVE,
NULL, 0, &needed, &returned, NULL, NULL);
exservices = HeapAlloc(GetProcessHeap(), 0, needed);
exservices = malloc(needed);
ret = pEnumServicesStatusExW(scm_handle, 0, SERVICE_WIN32, SERVICE_INACTIVE,
(BYTE*)exservices, needed, &needed, &returned, NULL, NULL);
HeapFree(GetProcessHeap(), 0, exservices);
free(exservices);
if (!ret && GetLastError() == ERROR_MORE_DATA && attempt)
goto retry; /* service start race condition */
@ -1819,10 +1819,10 @@ static BOOL test_enum_svc_ex(int attempt)
/* Get the number of win32 services */
pEnumServicesStatusExW(scm_handle, 0, SERVICE_WIN32, SERVICE_STATE_ALL,
NULL, 0, &needed, &returned, NULL, NULL);
exservices = HeapAlloc(GetProcessHeap(), 0, needed);
exservices = malloc(needed);
ret = pEnumServicesStatusExW(scm_handle, 0, SERVICE_WIN32, SERVICE_STATE_ALL,
(BYTE*)exservices, needed, &needed, &returned, NULL, NULL);
HeapFree(GetProcessHeap(), 0, exservices);
free(exservices);
if (!ret && GetLastError() == ERROR_MORE_DATA && attempt)
goto retry; /* service start race condition */
@ -1837,7 +1837,7 @@ static BOOL test_enum_svc_ex(int attempt)
ret = pEnumServicesStatusExW(scm_handle, 0, SERVICE_WIN32 | SERVICE_DRIVER,
SERVICE_STATE_ALL, NULL, 0, &needed, &returned, NULL, NULL);
ok(!ret, "Expected failure\n");
exservices = HeapAlloc(GetProcessHeap(), 0, needed);
exservices = malloc(needed);
ret = pEnumServicesStatusExW(scm_handle, 0, SERVICE_WIN32 | SERVICE_DRIVER,
SERVICE_STATE_ALL, (BYTE*)exservices, needed, &needed, &returned, NULL, NULL);
if (!ret && GetLastError() == ERROR_MORE_DATA && attempt)
@ -1908,7 +1908,7 @@ static BOOL test_enum_svc_ex(int attempt)
}
}
}
HeapFree(GetProcessHeap(), 0, exservices);
free(exservices);
if ((servicecountactive || servicecountinactive) && attempt)
goto retry; /* service start|stop race condition */
@ -2154,7 +2154,7 @@ static void test_sequence(void)
ok(!ret, "Expected failure\n");
ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "Expected ERROR_INSUFFICIENT_BUFFER, got %ld\n", GetLastError());
config = HeapAlloc(GetProcessHeap(), 0, needed);
config = malloc(needed);
given = needed;
SetLastError(0xdeadbeef);
ret = QueryServiceConfigA(svc_handle, config, given, &needed);
@ -2182,7 +2182,7 @@ static void test_sequence(void)
ok(ret, "ChangeServiceConfig failed (err=%ld)\n", GetLastError());
QueryServiceConfigA(svc_handle, NULL, 0, &needed);
config = HeapReAlloc(GetProcessHeap(), 0, config, needed);
config = realloc(config, needed);
ok(QueryServiceConfigA(svc_handle, config, needed, &needed), "QueryServiceConfig failed\n");
ok(config->lpBinaryPathName && config->lpLoadOrderGroup && config->lpDependencies && config->lpServiceStartName &&
config->lpDisplayName, "Expected all string struct members to be non-NULL\n");
@ -2201,7 +2201,7 @@ static void test_sequence(void)
ok(ret, "Expected success, got error %lu\n", GetLastError());
CloseServiceHandle(svc_handle);
CloseServiceHandle(scm_handle);
HeapFree(GetProcessHeap(), 0, config);
free(config);
}
static void test_queryconfig2(void)
@ -2890,7 +2890,7 @@ static void test_EventLog(void)
ok(!ret, "QueryServiceConfig should fail\n");
ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "got %lu\n", GetLastError());
config = HeapAlloc(GetProcessHeap(), 0, size);
config = malloc(size);
ret = QueryServiceConfigA(svc_handle, config, size, &size);
ok(ret, "QueryServiceConfig error %lu\n", GetLastError());
@ -2912,7 +2912,7 @@ static void test_EventLog(void)
!strcmp(config->lpDisplayName, "Event Log") /* XP */ ||
!strcmp(config->lpDisplayName, "Windows Event Log") /* Vista+ */, "got %s\n", config->lpDisplayName);
HeapFree(GetProcessHeap(), 0, config);
free(config);
memset(&status, 0, sizeof(status));
size = sizeof(status);