[PATCH 1/4] dnsapi: Return ERROR_MORE_DATA on insufficient buffer.
Huw Davies
huw at codeweavers.com
Mon Aug 9 04:06:25 CDT 2021
This was already done correctly in the res_getservers() case.
Signed-off-by: Huw Davies <huw at codeweavers.com>
---
dlls/dnsapi/libresolv.c | 2 +-
dlls/dnsapi/tests/query.c | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/dlls/dnsapi/libresolv.c b/dlls/dnsapi/libresolv.c
index 7e545cf36fb..864c517333d 100644
--- a/dlls/dnsapi/libresolv.c
+++ b/dlls/dnsapi/libresolv.c
@@ -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 );
diff --git a/dlls/dnsapi/tests/query.c b/dlls/dnsapi/tests/query.c
index 5fb47d89782..e691822a46a 100644
--- a/dlls/dnsapi/tests/query.c
+++ b/dlls/dnsapi/tests/query.c
@@ -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 );
--
2.23.0
More information about the wine-devel
mailing list