dnsapi: Return ERROR_MORE_DATA on insufficient buffer.

This was already done correctly in the res_getservers() case.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Huw Davies 2021-08-09 10:06:25 +01:00 committed by Alexandre Julliard
parent 6414726f57
commit 734de3bef8
2 changed files with 5 additions and 1 deletions

View File

@ -414,7 +414,7 @@ DNS_STATUS CDECL resolv_get_serverlist( USHORT family, DNS_ADDR_ARRAY *addrs, DW
if (!addrs || *len < needed)
{
*len = needed;
return !addrs ? ERROR_SUCCESS : ERROR_INSUFFICIENT_BUFFER;
return !addrs ? ERROR_SUCCESS : ERROR_MORE_DATA;
}
*len = needed;
memset( addrs, 0, needed );

View File

@ -155,6 +155,10 @@ static void test_DnsQueryConfig( void )
err = DnsQueryConfig( DnsConfigDnsServersIpv4, 0, name, NULL, NULL, &size );
if (err) continue;
ipv4 = malloc( size );
size--;
err = DnsQueryConfig( DnsConfigDnsServersIpv4, 0, name, NULL, ipv4, &size );
ok( err == ERROR_MORE_DATA, "got %d\n", err );
size++;
err = DnsQueryConfig( DnsConfigDnsServersIpv4, 0, name, NULL, ipv4, &size );
ok( !err, "got %d\n", err );