Hans Leidekker : dnsapi: Fix a number of memory leaks.
Alexandre Julliard
julliard at winehq.org
Mon Jul 21 08:51:17 CDT 2008
Module: wine
Branch: master
Commit: 73d0e7fda37747eb7ab6593d5648c94c275b1f93
URL: http://source.winehq.org/git/wine.git/?a=commit;h=73d0e7fda37747eb7ab6593d5648c94c275b1f93
Author: Hans Leidekker <hans at meelstraat.net>
Date: Sat Jul 19 19:53:35 2008 +0200
dnsapi: Fix a number of memory leaks.
---
dlls/dnsapi/record.c | 7 +++++--
dlls/dnsapi/tests/record.c | 8 ++++++++
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/dlls/dnsapi/record.c b/dlls/dnsapi/record.c
index 9584031..9755a3d 100644
--- a/dlls/dnsapi/record.c
+++ b/dlls/dnsapi/record.c
@@ -680,7 +680,7 @@ BOOL WINAPI DnsRecordSetCompare( PDNS_RECORD set1, PDNS_RECORD set2,
DNS_RRSET_ADD( rr1, u );
ret = FALSE;
}
- else heap_free( u );
+ else DnsRecordListFree( u, DnsFreeRecordList );
}
}
@@ -696,7 +696,7 @@ BOOL WINAPI DnsRecordSetCompare( PDNS_RECORD set1, PDNS_RECORD set2,
DNS_RRSET_ADD( rr2, u );
ret = FALSE;
}
- else heap_free( u );
+ else DnsRecordListFree( u, DnsFreeRecordList );
}
}
@@ -704,7 +704,10 @@ BOOL WINAPI DnsRecordSetCompare( PDNS_RECORD set1, PDNS_RECORD set2,
DNS_RRSET_TERMINATE( rr2 );
if (diff1) *diff1 = rr1.pFirstRR;
+ else DnsRecordListFree( rr1.pFirstRR, DnsFreeRecordList );
+
if (diff2) *diff2 = rr2.pFirstRR;
+ else DnsRecordListFree( rr2.pFirstRR, DnsFreeRecordList );
return ret;
diff --git a/dlls/dnsapi/tests/record.c b/dlls/dnsapi/tests/record.c
index 5d68bd4..8ce0f3d 100644
--- a/dlls/dnsapi/tests/record.c
+++ b/dlls/dnsapi/tests/record.c
@@ -89,9 +89,11 @@ static void test_DnsRecordSetCompare( void )
ok( DnsRecordSetCompare( rr1.pFirstRR, NULL, &diff1, &diff2 ) == FALSE, "succeeded unexpectedly\n" );
ok( diff1 != NULL && diff2 == NULL, "unexpected result: %p, %p\n", diff1, diff2 );
+ DnsRecordListFree( diff1, DnsFreeRecordList );
ok( DnsRecordSetCompare( NULL, rr2.pFirstRR, &diff1, &diff2 ) == FALSE, "succeeded unexpectedly\n" );
ok( diff1 == NULL && diff2 != NULL, "unexpected result: %p, %p\n", diff1, diff2 );
+ DnsRecordListFree( diff2, DnsFreeRecordList );
ok( DnsRecordSetCompare( rr1.pFirstRR, rr2.pFirstRR, NULL, &diff2 ) == TRUE, "failed unexpectedly\n" );
ok( diff2 == NULL, "unexpected result: %p\n", diff2 );
@@ -105,8 +107,14 @@ static void test_DnsRecordSetCompare( void )
r2.Data.A.IpAddress = 0;
ok( DnsRecordSetCompare( rr1.pFirstRR, rr2.pFirstRR, NULL, &diff2 ) == FALSE, "succeeded unexpectedly\n" );
+ DnsRecordListFree( diff2, DnsFreeRecordList );
+
ok( DnsRecordSetCompare( rr1.pFirstRR, rr2.pFirstRR, &diff1, NULL ) == FALSE, "succeeded unexpectedly\n" );
+ DnsRecordListFree( diff1, DnsFreeRecordList );
+
ok( DnsRecordSetCompare( rr1.pFirstRR, rr2.pFirstRR, &diff1, &diff2 ) == FALSE, "succeeded unexpectedly\n" );
+ DnsRecordListFree( diff1, DnsFreeRecordList );
+ DnsRecordListFree( diff2, DnsFreeRecordList );
}
static void test_DnsRecordSetDetach( void )
More information about the wine-cvs
mailing list