dnsapi: Fix a number of memory leaks.

This commit is contained in:
Hans Leidekker 2008-07-19 19:53:35 +02:00 committed by Alexandre Julliard
parent 97e5728d7a
commit 73d0e7fda3
2 changed files with 13 additions and 2 deletions

View File

@ -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;

View File

@ -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 )