[2/2] kernel32: Don't leak extrabuf when HeapReAlloc fails
André Hentschel
nerv at dawncrow.de
Wed Jan 29 16:41:34 CST 2014
---
dlls/kernel32/computername.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/computername.c b/dlls/kernel32/computername.c
index 0c81ac0..43eecd3 100644
--- a/dlls/kernel32/computername.c
+++ b/dlls/kernel32/computername.c
@@ -83,10 +83,14 @@ static BOOL dns_gethostbyname ( char *name, int *size )
while( extrabuf )
{
+ char *newbuf;
res = gethostbyname_r ( name, &hostentry, extrabuf, ebufsize, &host, &locerr );
if( res != ERANGE ) break;
ebufsize *= 2;
- extrabuf = HeapReAlloc( GetProcessHeap(), 0, extrabuf, ebufsize ) ;
+ if (newbuf = HeapReAlloc( GetProcessHeap(), 0, extrabuf, ebufsize ))
+ extrabuf = newbuf;
+ else
+ break;
}
if ( res )
--
1.8.1.2
More information about the wine-patches
mailing list