Module: wine Branch: master Commit: 5b0430a178ec16f05967065df7160efec5ee2b3d URL: https://gitlab.winehq.org/wine/wine/-/commit/5b0430a178ec16f05967065df7160ef...
Author: Huw Davies huw@codeweavers.com Date: Thu Dec 21 14:07:54 2023 +0000
dnsapi: Free the buffer in the early return paths.
---
dlls/dnsapi/libresolv.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/dlls/dnsapi/libresolv.c b/dlls/dnsapi/libresolv.c index d68ca1fd9bf..9034651ac6d 100644 --- a/dlls/dnsapi/libresolv.c +++ b/dlls/dnsapi/libresolv.c @@ -192,11 +192,16 @@ static NTSTATUS resolv_get_serverlist( void *args ) if (filter( buf[i].sin.sin_family, params->family )) continue; found++; } - if (!found) return DNS_ERROR_NO_DNS_SERVERS; + if (!found) + { + free( buf ); + return DNS_ERROR_NO_DNS_SERVERS; + }
needed = FIELD_OFFSET(DNS_ADDR_ARRAY, AddrArray[found]); if (!addrs || *params->len < needed) { + free( buf ); *params->len = needed; return !addrs ? ERROR_SUCCESS : ERROR_MORE_DATA; }