mpr: Properly handle the count set to -1 when enumerating connections.
Signed-off-by: Pierre Schweitzer <pierre@reactos.org> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
a76ce84fce
commit
51b4a42969
|
@ -1266,7 +1266,7 @@ static DWORD _copyStringToEnumW(const WCHAR *source, DWORD* left, void** end)
|
|||
static DWORD _enumerateConnectedW(PWNetEnumerator enumerator, DWORD* user_count,
|
||||
void* user_buffer, DWORD* user_size)
|
||||
{
|
||||
DWORD ret, index, count, size, i, left;
|
||||
DWORD ret, index, count, total_count, size, i, left;
|
||||
void* end;
|
||||
NETRESOURCEW* curr, * buffer;
|
||||
HANDLE* handles;
|
||||
|
@ -1290,6 +1290,7 @@ static DWORD _enumerateConnectedW(PWNetEnumerator enumerator, DWORD* user_count,
|
|||
curr = user_buffer;
|
||||
end = (char *)user_buffer + size;
|
||||
count = *user_count;
|
||||
total_count = 0;
|
||||
|
||||
ret = WN_NO_MORE_ENTRIES;
|
||||
for (index = 0; index < providerTable->numProviders; index++)
|
||||
|
@ -1309,6 +1310,7 @@ static DWORD _enumerateConnectedW(PWNetEnumerator enumerator, DWORD* user_count,
|
|||
ret = providerTable->table[index].enumResource(handles[index],
|
||||
&count, buffer,
|
||||
&size);
|
||||
total_count += count;
|
||||
if (ret == WN_MORE_DATA)
|
||||
break;
|
||||
|
||||
|
@ -1343,19 +1345,22 @@ static DWORD _enumerateConnectedW(PWNetEnumerator enumerator, DWORD* user_count,
|
|||
++curr;
|
||||
}
|
||||
|
||||
count = *user_count - count;
|
||||
if (*user_count != -1)
|
||||
count = *user_count - total_count;
|
||||
else
|
||||
count = *user_count;
|
||||
size = left;
|
||||
}
|
||||
|
||||
if (ret != WN_SUCCESS || count == 0)
|
||||
if (ret != WN_SUCCESS || total_count == 0)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (count == 0)
|
||||
if (total_count == 0)
|
||||
ret = WN_NO_MORE_ENTRIES;
|
||||
|
||||
*user_count = *user_count - count;
|
||||
*user_count = total_count;
|
||||
if (ret != WN_MORE_DATA && ret != WN_NO_MORE_ENTRIES)
|
||||
ret = WN_SUCCESS;
|
||||
|
||||
|
|
Loading…
Reference in New Issue