svn commit: samba r18165 - in branches: SAMBA_3_0/source/libads SAMBA_3_0_23/source/libads

gd at samba.org gd at samba.org
Wed Sep 6 12:14:59 GMT 2006


Author: gd
Date: 2006-09-06 12:14:58 +0000 (Wed, 06 Sep 2006)
New Revision: 18165

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=18165

Log:
Fix memleaks.

Guenther

Modified:
   branches/SAMBA_3_0/source/libads/ldap.c
   branches/SAMBA_3_0_23/source/libads/ldap.c


Changeset:
Modified: branches/SAMBA_3_0/source/libads/ldap.c
===================================================================
--- branches/SAMBA_3_0/source/libads/ldap.c	2006-09-06 12:12:42 UTC (rev 18164)
+++ branches/SAMBA_3_0/source/libads/ldap.c	2006-09-06 12:14:58 UTC (rev 18165)
@@ -2260,10 +2260,15 @@
 		return status;
 
 	if (ads_count_replies(ads, res) != 1) {
+		ads_msgfree(ads, res);
 		return ADS_ERROR(LDAP_NO_RESULTS_RETURNED);
 	}
 
-	ads_pull_uint32(ads, res, "highestCommittedUSN", usn);
+	if (!ads_pull_uint32(ads, res, "highestCommittedUSN", usn)) {
+		ads_msgfree(ads, res);
+		return ADS_ERROR(LDAP_NO_SUCH_ATTRIBUTE);
+	}
+
 	ads_msgfree(ads, res);
 	return ADS_SUCCESS;
 }
@@ -2325,7 +2330,7 @@
 
 	timestr = ads_pull_string(ads_s, ctx, res, "currentTime");
 	if (!timestr) {
-		ads_msgfree(ads, res);
+		ads_msgfree(ads_s, res);
 		status = ADS_ERROR(LDAP_NO_RESULTS_RETURNED);
 		goto done;
 	}

Modified: branches/SAMBA_3_0_23/source/libads/ldap.c
===================================================================
--- branches/SAMBA_3_0_23/source/libads/ldap.c	2006-09-06 12:12:42 UTC (rev 18164)
+++ branches/SAMBA_3_0_23/source/libads/ldap.c	2006-09-06 12:14:58 UTC (rev 18165)
@@ -2183,10 +2183,15 @@
 		return status;
 
 	if (ads_count_replies(ads, res) != 1) {
+		ads_msgfree(ads, res);
 		return ADS_ERROR(LDAP_NO_RESULTS_RETURNED);
 	}
 
-	ads_pull_uint32(ads, res, "highestCommittedUSN", usn);
+	if (!ads_pull_uint32(ads, res, "highestCommittedUSN", usn)) {
+		ads_msgfree(ads, res);
+		return ADS_ERROR(LDAP_NO_SUCH_ATTRIBUTE);
+	}
+
 	ads_msgfree(ads, res);
 	return ADS_SUCCESS;
 }
@@ -2248,7 +2253,7 @@
 
 	timestr = ads_pull_string(ads_s, ctx, res, "currentTime");
 	if (!timestr) {
-		ads_msgfree(ads, res);
+		ads_msgfree(ads_s, res);
 		status = ADS_ERROR(LDAP_NO_RESULTS_RETURNED);
 		goto done;
 	}



More information about the samba-cvs mailing list